https://git.reactos.org/?p=reactos.git;a=commitdiff;h=7eff8a36d55c779a49b16…
commit 7eff8a36d55c779a49b16f63ecc0832683a17706
Author: Jérôme Gardou <jerome.gardou(a)reactos.org>
AuthorDate: Thu May 20 00:19:43 2021 +0200
Commit: Jérôme Gardou <jerome.gardou(a)reactos.org>
CommitDate: Thu May 20 00:19:43 2021 +0200
Revert "[NTOS:MM] Add private pages to process working sets"
This is so full of bugs, I don't know what to say.
This reverts commit 374fef2d59f39b714ff3152f1590f6af843c8bf5.
---
ntoskrnl/include/internal/mm.h | 15 ---------
ntoskrnl/mm/ARM3/pagfault.c | 66 ++++++++++--------------------------
ntoskrnl/mm/ARM3/virtual.c | 76 +++++++++++++++++++++---------------------
ntoskrnl/mm/marea.c | 12 ++++---
4 files changed, 63 insertions(+), 106 deletions(-)
diff --git a/ntoskrnl/include/internal/mm.h b/ntoskrnl/include/internal/mm.h
index a591feeec62..c3391191a17 100644
--- a/ntoskrnl/include/internal/mm.h
+++ b/ntoskrnl/include/internal/mm.h
@@ -1674,21 +1674,6 @@ VOID
NTAPI
MiInitializeWorkingSetList(_Inout_ PMMSUPPORT WorkingSet);
-_Requires_exclusive_lock_held_(Vm->WorkingSetMutex)
-VOID
-NTAPI
-MiInsertInWorkingSetList(
- _Inout_ PMMSUPPORT Vm,
- _In_ PVOID Address,
- _In_ ULONG Protection);
-
-_Requires_exclusive_lock_held_(Vm->WorkingSetMutex)
-VOID
-NTAPI
-MiRemoveFromWorkingSetList(
- _Inout_ PMMSUPPORT Vm,
- _In_ PVOID Address);
-
#ifdef __cplusplus
} // extern "C"
diff --git a/ntoskrnl/mm/ARM3/pagfault.c b/ntoskrnl/mm/ARM3/pagfault.c
index 061577671e9..87c789c1742 100644
--- a/ntoskrnl/mm/ARM3/pagfault.c
+++ b/ntoskrnl/mm/ARM3/pagfault.c
@@ -697,6 +697,16 @@ MiResolveDemandZeroFault(IN PVOID Address,
/* Increment demand zero faults */
KeGetCurrentPrcb()->MmDemandZeroCount++;
+ /* Do we have the lock? */
+ if (HaveLock)
+ {
+ /* Release it */
+ MiReleasePfnLock(OldIrql);
+
+ /* Update performance counters */
+ if (Process > HYDRA_PROCESS) Process->NumberOfPrivatePages++;
+ }
+
/* Zero the page if need be */
if (NeedZero) MiZeroPfn(PageFrameNumber);
@@ -733,19 +743,6 @@ MiResolveDemandZeroFault(IN PVOID Address,
/* Windows does these sanity checks */
ASSERT(Pfn1->u1.Event == 0);
ASSERT(Pfn1->u3.e1.PrototypePte == 0);
-
- /* Release it */
- MiReleasePfnLock(OldIrql);
-
- /* Update performance counters */
- if (Process > HYDRA_PROCESS) Process->NumberOfPrivatePages++;
- }
-
- /* Add the page to our working set, if it's not a proto PTE */
- if ((Process > HYDRA_PROCESS) && (PointerPte == MiAddressToPte(Address)))
- {
- /* FIXME: Also support session VM scenario */
- MiInsertInWorkingSetList(&Process->Vm, Address, Protection);
}
//
@@ -965,9 +962,6 @@ MiResolvePageFileFault(_In_ BOOLEAN StoreInstruction,
KeSetEvent(Pfn1->u1.Event, IO_NO_INCREMENT, FALSE);
}
- /* And we can insert this into the working set */
- MiInsertInWorkingSetList(&CurrentProcess->Vm, FaultingAddress, Protection);
-
return Status;
}
@@ -985,8 +979,6 @@ MiResolveTransitionFault(IN BOOLEAN StoreInstruction,
PMMPFN Pfn1;
MMPTE TempPte;
PMMPTE PointerToPteForProtoPage;
- ULONG Protection;
-
DPRINT("Transition fault on 0x%p with PTE 0x%p in process %s\n",
FaultingAddress, PointerPte, CurrentProcess->ImageFileName);
@@ -1080,9 +1072,8 @@ MiResolveTransitionFault(IN BOOLEAN StoreInstruction,
ASSERT(PointerPte->u.Hard.Valid == 0);
ASSERT(PointerPte->u.Trans.Prototype == 0);
ASSERT(PointerPte->u.Trans.Transition == 1);
- Protection = TempPte.u.Trans.Protection;
TempPte.u.Long = (PointerPte->u.Long & ~0xFFF) |
- (MmProtectToPteMask[Protection]) |
+ (MmProtectToPteMask[PointerPte->u.Trans.Protection]) |
MiDetermineUserGlobalPteMask(PointerPte);
/* Is the PTE writeable? */
@@ -1102,10 +1093,6 @@ MiResolveTransitionFault(IN BOOLEAN StoreInstruction,
/* Write the valid PTE */
MI_WRITE_VALID_PTE(PointerPte, TempPte);
- /* If this was a user fault, add it to the working set */
- if (CurrentProcess > HYDRA_PROCESS)
- MiInsertInWorkingSetList(&CurrentProcess->Vm, FaultingAddress, Protection);
-
/* Return success */
return STATUS_PAGE_FAULT_TRANSITION;
}
@@ -1247,9 +1234,6 @@ MiResolveProtoPteFault(IN BOOLEAN StoreInstruction,
Pfn1 = MI_PFN_ELEMENT(PageFrameIndex);
MiInitializePfn(PageFrameIndex, PointerPte, TRUE);
- /* The caller expects us to release the PFN lock */
- MiReleasePfnLock(OldIrql);
-
/* Fix the protection */
Protection &= ~MM_WRITECOPY;
Protection |= MM_READWRITE;
@@ -1267,12 +1251,8 @@ MiResolveProtoPteFault(IN BOOLEAN StoreInstruction,
/* And finally, write the valid PTE */
MI_WRITE_VALID_PTE(PointerPte, PteContents);
- /* Add the page to our working set */
- if (Process > HYDRA_PROCESS)
- {
- /* FIXME: Also support session VM scenario */
- MiInsertInWorkingSetList(&Process->Vm, Address, Protection);
- }
+ /* The caller expects us to release the PFN lock */
+ MiReleasePfnLock(OldIrql);
return Status;
}
@@ -2231,7 +2211,6 @@ UserFault:
{
PFN_NUMBER PageFrameIndex, OldPageFrameIndex;
PMMPFN Pfn1;
- ProtectionCode = TempPte.u.Soft.Protection;
LockIrql = MiAcquirePfnLock();
@@ -2255,18 +2234,13 @@ UserFault:
/* And make a new shiny one with our page */
MiInitializePfn(PageFrameIndex, PointerPte, TRUE);
-
- MiReleasePfnLock(LockIrql);
-
TempPte.u.Hard.PageFrameNumber = PageFrameIndex;
TempPte.u.Hard.Write = 1;
TempPte.u.Hard.CopyOnWrite = 0;
MI_WRITE_VALID_PTE(PointerPte, TempPte);
- /* We can now add it to our working set */
- MiInsertInWorkingSetList(&CurrentProcess->Vm, Address, ProtectionCode);
-
+ MiReleasePfnLock(LockIrql);
/* Return the status */
MiUnlockProcessWorkingSet(CurrentProcess, CurrentThread);
@@ -2383,7 +2357,6 @@ UserFault:
TempPte.u.Soft.Protection = ProtectionCode;
MI_WRITE_INVALID_PTE(PointerPte, TempPte);
}
- ProtectionCode = PointerPte->u.Soft.Protection;
/* Lock the PFN database since we're going to grab a page */
OldIrql = MiAcquirePfnLock();
@@ -2415,14 +2388,14 @@ UserFault:
/* Initialize the PFN entry now */
MiInitializePfn(PageFrameIndex, PointerPte, 1);
- /* And be done with the lock */
- MiReleasePfnLock(OldIrql);
-
/* Increment the count of pages in the process */
CurrentProcess->NumberOfPrivatePages++;
/* One more demand-zero fault */
- InterlockedIncrement(&KeGetCurrentPrcb()->MmDemandZeroCount);
+ KeGetCurrentPrcb()->MmDemandZeroCount++;
+
+ /* And we're done with the lock */
+ MiReleasePfnLock(OldIrql);
/* Fault on user PDE, or fault on user PTE? */
if (PointerPte <= MiHighestUserPte)
@@ -2450,9 +2423,6 @@ UserFault:
Pfn1 = MI_PFN_ELEMENT(PageFrameIndex);
ASSERT(Pfn1->u1.Event == NULL);
- /* We can now insert it into the working set */
- MiInsertInWorkingSetList(&CurrentProcess->Vm, Address, ProtectionCode);
-
/* Demand zero */
ASSERT(KeGetCurrentIrql() <= APC_LEVEL);
MiUnlockProcessWorkingSet(CurrentProcess, CurrentThread);
diff --git a/ntoskrnl/mm/ARM3/virtual.c b/ntoskrnl/mm/ARM3/virtual.c
index f4d10583150..9396e18b05a 100644
--- a/ntoskrnl/mm/ARM3/virtual.c
+++ b/ntoskrnl/mm/ARM3/virtual.c
@@ -398,6 +398,9 @@ MiDeletePte(IN PMMPTE PointerPte,
PFN_NUMBER PageFrameIndex;
PMMPDE PointerPde;
+ /* PFN lock must be held */
+ MI_ASSERT_PFN_LOCK_HELD();
+
/* Capture the PTE */
TempPte = *PointerPte;
@@ -422,8 +425,6 @@ MiDeletePte(IN PMMPTE PointerPte,
/* Destroy the PTE */
MI_ERASE_PTE(PointerPte);
- KIRQL OldIrql = MiAcquirePfnLock();
-
/* Drop the reference on the page table. */
MiDecrementShareCount(MiGetPfnEntry(Pfn1->u4.PteFrame), Pfn1->u4.PteFrame);
@@ -443,8 +444,6 @@ MiDeletePte(IN PMMPTE PointerPte,
MI_SET_PFN_DELETED(Pfn1);
MiDecrementReferenceCount(Pfn1, PageFrameIndex);
}
-
- MiReleasePfnLock(OldIrql);
return;
}
}
@@ -475,8 +474,6 @@ MiDeletePte(IN PMMPTE PointerPte,
#if (_MI_PAGING_LEVELS == 2)
}
#endif
-
- KIRQL OldIrql = MiAcquirePfnLock();
/* Drop the share count on the page table */
PointerPde = MiPteToPde(PointerPte);
MiDecrementShareCount(MiGetPfnEntry(PointerPde->u.Hard.PageFrameNumber),
@@ -484,7 +481,6 @@ MiDeletePte(IN PMMPTE PointerPte,
/* Drop the share count */
MiDecrementShareCount(Pfn1, PageFrameIndex);
- MiReleasePfnLock(OldIrql);
/* Either a fork, or this is the shared user data page */
if ((PointerPte <= MiHighestUserPte) && (PrototypePte != Pfn1->PteAddress))
@@ -507,9 +503,6 @@ MiDeletePte(IN PMMPTE PointerPte,
}
else
{
- /* Remove this address from the WS list */
- MiRemoveFromWorkingSetList(&CurrentProcess->Vm, VirtualAddress);
-
/* Make sure the saved PTE address is valid */
if ((PMMPTE)((ULONG_PTR)Pfn1->PteAddress & ~0x1) != PointerPte)
{
@@ -524,7 +517,6 @@ MiDeletePte(IN PMMPTE PointerPte,
/* Erase the PTE */
MI_ERASE_PTE(PointerPte);
- KIRQL OldIrql = MiAcquirePfnLock();
/* There should only be 1 shared reference count */
ASSERT(Pfn1->u2.ShareCount == 1);
@@ -534,7 +526,6 @@ MiDeletePte(IN PMMPTE PointerPte,
/* Mark the PFN for deletion and dereference what should be the last ref */
MI_SET_PFN_DELETED(Pfn1);
MiDecrementShareCount(Pfn1, PageFrameIndex);
- MiReleasePfnLock(OldIrql);
/* We should eventually do this */
//CurrentProcess->NumberOfPrivatePages--;
@@ -2348,23 +2339,24 @@ MiProtectVirtualMemory(IN PEPROCESS Process,
if ((NewAccessProtection & PAGE_NOACCESS) ||
(NewAccessProtection & PAGE_GUARD))
{
- /* Remove this from the working set */
- MiRemoveFromWorkingSetList(AddressSpace, MiPteToAddress(PointerPte));
+ KIRQL OldIrql = MiAcquirePfnLock();
/* Mark the PTE as transition and change its protection */
PteContents.u.Hard.Valid = 0;
PteContents.u.Soft.Transition = 1;
PteContents.u.Trans.Protection = ProtectionMask;
/* Decrease PFN share count and write the PTE */
- KIRQL OldIrql = MiAcquirePfnLock();
MiDecrementShareCount(Pfn1, PFN_FROM_PTE(&PteContents));
- MiReleasePfnLock(OldIrql);
+ // FIXME: remove the page from the WS
MI_WRITE_INVALID_PTE(PointerPte, PteContents);
#ifdef CONFIG_SMP
// FIXME: Should invalidate entry in every CPU TLB
ASSERT(FALSE);
#endif
KeInvalidateTlbEntry(MiPteToAddress(PointerPte));
+
+ /* We are done for this PTE */
+ MiReleasePfnLock(OldIrql);
}
else
{
@@ -2493,44 +2485,41 @@ MiMakePdeExistAndMakeValid(IN PMMPDE PointerPde,
VOID
NTAPI
-MiProcessValidPteList(
- _Inout_ PMMSUPPORT Vm,
- _Inout_ PMMPTE *ValidPteList,
- _In_ ULONG Count)
+MiProcessValidPteList(IN PMMPTE *ValidPteList,
+ IN ULONG Count)
{
+ KIRQL OldIrql;
ULONG i;
+ MMPTE TempPte;
+ PFN_NUMBER PageFrameIndex;
+ PMMPFN Pfn1, Pfn2;
+
//
- // Loop all the PTEs in the list
+ // Acquire the PFN lock and loop all the PTEs in the list
//
+ OldIrql = MiAcquirePfnLock();
for (i = 0; i != Count; i++)
{
//
// The PTE must currently be valid
//
- MMPTE TempPte = *ValidPteList[i];
+ TempPte = *ValidPteList[i];
ASSERT(TempPte.u.Hard.Valid == 1);
- //
- // We can now remove this addres from the working set
- //
- MiRemoveFromWorkingSetList(Vm, MiPteToAddress(ValidPteList[i]));
-
//
// Get the PFN entry for the page itself, and then for its page table
//
- PFN_NUMBER PageFrameIndex = PFN_FROM_PTE(&TempPte);
- PMMPFN Pfn1 = MiGetPfnEntry(PageFrameIndex);
- PMMPFN Pfn2 = MiGetPfnEntry(Pfn1->u4.PteFrame);
+ PageFrameIndex = PFN_FROM_PTE(&TempPte);
+ Pfn1 = MiGetPfnEntry(PageFrameIndex);
+ Pfn2 = MiGetPfnEntry(Pfn1->u4.PteFrame);
//
// Decrement the share count on the page table, and then on the page
// itself
//
- KIRQL OldIrql = MiAcquirePfnLock();
MiDecrementShareCount(Pfn2, Pfn1->u4.PteFrame);
MI_SET_PFN_DELETED(Pfn1);
MiDecrementShareCount(Pfn1, PageFrameIndex);
- MiReleasePfnLock(OldIrql);
//
// Make the page decommitted
@@ -2543,6 +2532,7 @@ MiProcessValidPteList(
// and then release the PFN lock
//
KeFlushCurrentTb();
+ MiReleasePfnLock(OldIrql);
}
ULONG
@@ -2557,6 +2547,7 @@ MiDecommitPages(IN PVOID StartingAddress,
ULONG CommitReduction = 0;
PMMPTE ValidPteList[256];
ULONG PteCount = 0;
+ PMMPFN Pfn1;
MMPTE PteContents;
PETHREAD CurrentThread = PsGetCurrentThread();
@@ -2588,10 +2579,10 @@ MiDecommitPages(IN PVOID StartingAddress,
// such, and does not flush the entire TLB all the time, but right
// now we have bigger problems to worry about than TLB flushing.
//
- PointerPde = MiPteToPde(PointerPte);
+ PointerPde = MiAddressToPde(StartingAddress);
if (PteCount)
{
- MiProcessValidPteList(&Process->Vm, ValidPteList, PteCount);
+ MiProcessValidPteList(ValidPteList, PteCount);
PteCount = 0;
}
@@ -2626,13 +2617,21 @@ MiDecommitPages(IN PVOID StartingAddress,
//Process->NumberOfPrivatePages--;
if (PteContents.u.Hard.Valid)
{
+ //
+ // It's valid. At this point make sure that it is not a ROS
+ // PFN. Also, we don't support ProtoPTEs in this code path.
+ //
+ Pfn1 = MiGetPfnEntry(PteContents.u.Hard.PageFrameNumber);
+ ASSERT(MI_IS_ROS_PFN(Pfn1) == FALSE);
+ ASSERT(Pfn1->u3.e1.PrototypePte == FALSE);
+
//
// Flush any pending PTEs that we had not yet flushed, if our
// list has gotten too big, then add this PTE to the flush list.
//
if (PteCount == 256)
{
- MiProcessValidPteList(&Process->Vm, ValidPteList, PteCount);
+ MiProcessValidPteList(ValidPteList, PteCount);
PteCount = 0;
}
ValidPteList[PteCount++] = PointerPte;
@@ -2662,7 +2661,7 @@ MiDecommitPages(IN PVOID StartingAddress,
// This used to be a zero PTE and it no longer is, so we must add a
// reference to the pagetable.
//
- MiIncrementPageTableReferences(MiPteToAddress(PointerPte));
+ MiIncrementPageTableReferences(StartingAddress);
//
// Next, we account for decommitted PTEs and make the PTE as such
@@ -2672,16 +2671,17 @@ MiDecommitPages(IN PVOID StartingAddress,
}
//
- // Move to the next PTE
+ // Move to the next PTE and the next address
//
PointerPte++;
+ StartingAddress = (PVOID)((ULONG_PTR)StartingAddress + PAGE_SIZE);
}
//
// Flush any dangling PTEs from the loop in the last page table, and then
// release the working set and return the commit reduction accounting.
//
- if (PteCount) MiProcessValidPteList(&Process->Vm, ValidPteList, PteCount);
+ if (PteCount) MiProcessValidPteList(ValidPteList, PteCount);
MiUnlockProcessWorkingSetUnsafe(Process, CurrentThread);
return CommitReduction;
}
diff --git a/ntoskrnl/mm/marea.c b/ntoskrnl/mm/marea.c
index d2ade0eb04b..1942dd76b27 100644
--- a/ntoskrnl/mm/marea.c
+++ b/ntoskrnl/mm/marea.c
@@ -572,14 +572,15 @@ MmDeleteProcessAddressSpace(PEPROCESS Process)
#if (_MI_PAGING_LEVELS == 2)
{
+ KIRQL OldIrql;
PVOID Address;
PMMPDE pointerPde;
- KAPC_STATE ApcState;
/* Attach to Process */
- KeStackAttachProcess(&Process->Pcb, &ApcState);
+ KeAttachProcess(&Process->Pcb);
- MiLockProcessWorkingSet(Process, PsGetCurrentThread());
+ /* Acquire PFN lock */
+ OldIrql = MiAcquirePfnLock();
for (Address = MI_LOWEST_VAD_ADDRESS;
Address < MM_HIGHEST_VAD_ADDRESS;
@@ -603,10 +604,11 @@ MmDeleteProcessAddressSpace(PEPROCESS Process)
ASSERT(pointerPde->u.Hard.Valid == 0);
}
- MiUnlockProcessWorkingSet(Process, PsGetCurrentThread());
+ /* Release lock */
+ MiReleasePfnLock(OldIrql);
/* Detach */
- KeUnstackDetachProcess(&ApcState);
+ KeDetachProcess();
}
#endif
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=969e60a06d354bd718860…
commit 969e60a06d354bd7188601a0307eb93a240b1a2f
Author: Jérôme Gardou <jerome.gardou(a)reactos.org>
AuthorDate: Wed May 19 23:53:57 2021 +0200
Commit: Jérôme Gardou <jerome.gardou(a)reactos.org>
CommitDate: Wed May 19 23:56:21 2021 +0200
[NTOS:MM] Move software PTE specific check after it's been tested for being one
Caught by The_DarkFire, only soul on earth actually *running* our SMP kernel
---
ntoskrnl/mm/ARM3/virtual.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/ntoskrnl/mm/ARM3/virtual.c b/ntoskrnl/mm/ARM3/virtual.c
index 938be15c585..f4d10583150 100644
--- a/ntoskrnl/mm/ARM3/virtual.c
+++ b/ntoskrnl/mm/ARM3/virtual.c
@@ -315,10 +315,6 @@ MiDeleteSystemPageableVm(IN PMMPTE PointerPte,
/* Make sure there's some data about the page */
if (PointerPte->u.Long)
{
- /* As always, only handle current ARM3 scenarios */
- ASSERT(PointerPte->u.Soft.Prototype == 0);
- ASSERT(PointerPte->u.Soft.Transition == 0);
-
/* Normally this is one possibility -- freeing a valid page */
if (PointerPte->u.Hard.Valid)
{
@@ -354,6 +350,10 @@ MiDeleteSystemPageableVm(IN PMMPTE PointerPte,
}
else
{
+ /* As always, only handle current ARM3 scenarios */
+ ASSERT(PointerPte->u.Soft.Prototype == 0);
+ ASSERT(PointerPte->u.Soft.Transition == 0);
+
/*
* The only other ARM3 possibility is a demand zero page, which would
* mean freeing some of the paged pool pages that haven't even been
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=7d0d14965ee8547d94ff7…
commit 7d0d14965ee8547d94ff7ce483c097543f53e505
Author: Jérôme Gardou <jerome.gardou(a)reactos.org>
AuthorDate: Wed May 19 22:20:38 2021 +0200
Commit: Jérôme Gardou <zefklop(a)users.noreply.github.com>
CommitDate: Wed May 19 23:17:27 2021 +0200
[NTOS:MM] Do not map Process Working Set List in kernel space
This is not needed anymore and causes havoc on amd64
---
ntoskrnl/mm/ARM3/procsup.c | 10 +---------
1 file changed, 1 insertion(+), 9 deletions(-)
diff --git a/ntoskrnl/mm/ARM3/procsup.c b/ntoskrnl/mm/ARM3/procsup.c
index 5f24a8a0b95..c7abed0c794 100644
--- a/ntoskrnl/mm/ARM3/procsup.c
+++ b/ntoskrnl/mm/ARM3/procsup.c
@@ -916,7 +916,7 @@ MmInitializeProcessAddressSpace(IN PEPROCESS Process,
PWCHAR Source;
PCHAR Destination;
USHORT Length = 0;
- MMPTE TempPte;
+
#if (_MI_PAGING_LEVELS >= 3)
PMMPPE PointerPpe;
#endif
@@ -1003,13 +1003,6 @@ MmInitializeProcessAddressSpace(IN PEPROCESS Process,
/* Now initialize the working set list */
MiInitializeWorkingSetList(&Process->Vm);
- /* Map the process working set in kernel space */
- /* FIXME: there should be no need */
- PointerPte = MiReserveSystemPtes(1, SystemPteSpace);
- MI_MAKE_HARDWARE_PTE_KERNEL(&TempPte, PointerPte, MM_READWRITE, Process->WorkingSetPage);
- MI_WRITE_VALID_PTE(PointerPte, TempPte);
- Process->Vm.VmWorkingSetList = MiPteToAddress(PointerPte);
-
/* The rule is that the owner process is always in the FLINK of the PDE's PFN entry */
Pfn = MiGetPfnEntry(Process->Pcb.DirectoryTableBase[0] >> PAGE_SHIFT);
ASSERT(Pfn->u4.PteFrame == MiGetPfnEntryIndex(Pfn));
@@ -1361,7 +1354,6 @@ MmDeleteProcessAddressSpace2(IN PEPROCESS Process)
MiDecrementShareCount(Pfn2, Pfn1->u4.PteFrame);
MiDecrementShareCount(Pfn1, Process->WorkingSetPage);
ASSERT((Pfn1->u3.e2.ReferenceCount == 0) || (Pfn1->u3.e1.WriteInProgress));
- MiReleaseSystemPtes(MiAddressToPte(Process->Vm.VmWorkingSetList), 1, SystemPteSpace);
/* Now map hyperspace and its page table */
PageFrameIndex = Process->Pcb.DirectoryTableBase[1] >> PAGE_SHIFT;
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=8d1e01be0e448cce63185…
commit 8d1e01be0e448cce631851429a54e1526f241bf8
Author: Jérôme Gardou <jerome.gardou(a)reactos.org>
AuthorDate: Tue May 18 21:16:48 2021 +0200
Commit: Jérôme Gardou <zefklop(a)users.noreply.github.com>
CommitDate: Wed May 19 22:50:29 2021 +0200
[NLS] Use files provided by Microsoft to generate most of our NLS files
Instead of binary blobs coming from who-knows-where
CORE-17571
---
media/nls/CMakeLists.txt | 252 +-
media/nls/c_037.nls | Bin 66082 -> 0 bytes
media/nls/c_10000.nls | Bin 66082 -> 0 bytes
media/nls/c_10004.nls | Bin 66082 -> 0 bytes
media/nls/c_10005.nls | Bin 66082 -> 0 bytes
media/nls/c_10006.nls | Bin 66082 -> 0 bytes
media/nls/c_10007.nls | Bin 66082 -> 0 bytes
media/nls/c_10010.nls | Bin 66082 -> 0 bytes
media/nls/c_10017.nls | Bin 66082 -> 0 bytes
media/nls/c_10021.nls | Bin 66082 -> 0 bytes
media/nls/c_10029.nls | Bin 66082 -> 0 bytes
media/nls/c_1006.nls | Bin 66082 -> 0 bytes
media/nls/c_10079.nls | Bin 66082 -> 0 bytes
media/nls/c_10081.nls | Bin 66082 -> 0 bytes
media/nls/c_10082.nls | Bin 66082 -> 0 bytes
media/nls/c_1026.nls | Bin 66082 -> 0 bytes
media/nls/c_1047.nls | Bin 66082 -> 0 bytes
media/nls/c_1140.nls | Bin 66082 -> 0 bytes
media/nls/c_1141.nls | Bin 66082 -> 0 bytes
media/nls/c_1142.nls | Bin 66082 -> 0 bytes
media/nls/c_1143.nls | Bin 66082 -> 0 bytes
media/nls/c_1144.nls | Bin 66082 -> 0 bytes
media/nls/c_1145.nls | Bin 66082 -> 0 bytes
media/nls/c_1146.nls | Bin 66082 -> 0 bytes
media/nls/c_1147.nls | Bin 66082 -> 0 bytes
media/nls/c_1148.nls | Bin 66082 -> 0 bytes
media/nls/c_1149.nls | Bin 66082 -> 0 bytes
media/nls/c_1250.nls | Bin 66082 -> 0 bytes
media/nls/c_1251.nls | Bin 66082 -> 0 bytes
media/nls/c_1252.nls | Bin 66082 -> 0 bytes
media/nls/c_1253.nls | Bin 66082 -> 0 bytes
media/nls/c_1254.nls | Bin 66082 -> 0 bytes
media/nls/c_1255.nls | Bin 66082 -> 0 bytes
media/nls/c_1256.nls | Bin 66082 -> 0 bytes
media/nls/c_1257.nls | Bin 66082 -> 0 bytes
media/nls/c_1258.nls | Bin 66082 -> 0 bytes
media/nls/c_20105.nls | Bin 66082 -> 0 bytes
media/nls/c_20106.nls | Bin 66082 -> 0 bytes
media/nls/c_20107.nls | Bin 66082 -> 0 bytes
media/nls/c_20108.nls | Bin 66082 -> 0 bytes
media/nls/c_20127.nls | Bin 66082 -> 0 bytes
media/nls/c_20269.nls | Bin 66082 -> 0 bytes
media/nls/c_20273.nls | Bin 66082 -> 0 bytes
media/nls/c_20277.nls | Bin 66082 -> 0 bytes
media/nls/c_20278.nls | Bin 66082 -> 0 bytes
media/nls/c_20280.nls | Bin 66082 -> 0 bytes
media/nls/c_20284.nls | Bin 66082 -> 0 bytes
media/nls/c_20285.nls | Bin 66082 -> 0 bytes
media/nls/c_20290.nls | Bin 66082 -> 0 bytes
media/nls/c_20297.nls | Bin 66082 -> 0 bytes
media/nls/c_20420.nls | Bin 66082 -> 0 bytes
media/nls/c_20423.nls | Bin 66082 -> 0 bytes
media/nls/c_20424.nls | Bin 66082 -> 0 bytes
media/nls/c_20833.nls | Bin 66082 -> 0 bytes
media/nls/c_20838.nls | Bin 66082 -> 0 bytes
media/nls/c_20866.nls | Bin 66082 -> 0 bytes
media/nls/c_20871.nls | Bin 66082 -> 0 bytes
media/nls/c_20880.nls | Bin 66082 -> 0 bytes
media/nls/c_20905.nls | Bin 66082 -> 0 bytes
media/nls/c_20924.nls | Bin 66082 -> 0 bytes
media/nls/c_21025.nls | Bin 66082 -> 0 bytes
media/nls/c_21027.nls | Bin 66082 -> 0 bytes
media/nls/c_21866.nls | Bin 66082 -> 0 bytes
media/nls/c_28591.nls | Bin 66082 -> 0 bytes
media/nls/c_28592.nls | Bin 66082 -> 0 bytes
media/nls/c_28593.nls | Bin 66082 -> 0 bytes
media/nls/c_28594.nls | Bin 66082 -> 0 bytes
media/nls/c_28595.nls | Bin 66082 -> 0 bytes
media/nls/c_28596.nls | Bin 66082 -> 0 bytes
media/nls/c_28597.nls | Bin 66082 -> 0 bytes
media/nls/c_28598.nls | Bin 66082 -> 0 bytes
media/nls/c_28599.nls | Bin 66082 -> 0 bytes
media/nls/c_28600.nls | Bin 66082 -> 0 bytes
media/nls/c_28603.nls | Bin 66082 -> 0 bytes
media/nls/c_28604.nls | Bin 66082 -> 0 bytes
media/nls/c_28605.nls | Bin 66082 -> 0 bytes
media/nls/c_28606.nls | Bin 66082 -> 0 bytes
media/nls/c_424.nls | Bin 66082 -> 0 bytes
media/nls/c_437.nls | Bin 66594 -> 0 bytes
media/nls/c_500.nls | Bin 66082 -> 0 bytes
media/nls/c_708.nls | Bin 66082 -> 0 bytes
media/nls/c_720.nls | Bin 66594 -> 0 bytes
media/nls/c_737.nls | Bin 66594 -> 0 bytes
media/nls/c_775.nls | Bin 66594 -> 0 bytes
media/nls/c_850.nls | Bin 66594 -> 0 bytes
media/nls/c_852.nls | Bin 66594 -> 0 bytes
media/nls/c_855.nls | Bin 66594 -> 0 bytes
media/nls/c_857.nls | Bin 66594 -> 0 bytes
media/nls/c_858.nls | Bin 66594 -> 0 bytes
media/nls/c_860.nls | Bin 66594 -> 0 bytes
media/nls/c_861.nls | Bin 66594 -> 0 bytes
media/nls/c_862.nls | Bin 66594 -> 0 bytes
media/nls/c_863.nls | Bin 66594 -> 0 bytes
media/nls/c_864.nls | Bin 66594 -> 0 bytes
media/nls/c_865.nls | Bin 66594 -> 0 bytes
media/nls/c_866.nls | Bin 66594 -> 0 bytes
media/nls/c_869.nls | Bin 66594 -> 0 bytes
media/nls/c_870.nls | Bin 66082 -> 0 bytes
media/nls/c_874.nls | Bin 66594 -> 0 bytes
media/nls/c_875.nls | Bin 66082 -> 0 bytes
media/nls/c_932.nls | Bin 162850 -> 0 bytes
media/nls/c_936.nls | Bin 196642 -> 0 bytes
media/nls/c_949.nls | Bin 196642 -> 0 bytes
media/nls/c_950.nls | Bin 196642 -> 0 bytes
media/nls/src/c_037.txt | 1223 +-
media/nls/src/c_10000.txt | 1031 +-
media/nls/src/c_10001.txt | 19568 +++++++++++++++++
media/nls/src/c_10002.txt | 39933 +++++++++++++++++++++++++++++++++++
media/nls/src/c_10003.txt | 17334 +++++++++++++++
media/nls/src/c_10004.txt | 1294 +-
media/nls/src/c_10005.txt | 1031 +-
media/nls/src/c_10006.txt | 1032 +-
media/nls/src/c_10007.txt | 1032 +-
media/nls/src/c_10008.txt | 15493 ++++++++++++++
media/nls/src/c_10010.txt | 1032 +-
media/nls/src/c_10017.txt | 1032 +-
media/nls/src/c_10021.txt | 966 +-
media/nls/src/c_10029.txt | 1032 +-
media/nls/src/c_1006.txt | 2 +-
media/nls/src/c_10079.txt | 1032 +-
media/nls/src/c_10081.txt | 1032 +-
media/nls/src/c_10082.txt | 1032 +-
media/nls/src/c_1026.txt | 1223 +-
media/nls/src/c_1047.txt | 1222 +-
media/nls/src/c_1140.txt | 1222 +-
media/nls/src/c_1141.txt | 1222 +-
media/nls/src/c_1142.txt | 1222 +-
media/nls/src/c_1143.txt | 1222 +-
media/nls/src/c_1144.txt | 1222 +-
media/nls/src/c_1145.txt | 1222 +-
media/nls/src/c_1146.txt | 1222 +-
media/nls/src/c_1147.txt | 1222 +-
media/nls/src/c_1148.txt | 1222 +-
media/nls/src/c_1149.txt | 1220 +-
media/nls/src/c_1250.txt | 1904 +-
media/nls/src/c_1251.txt | 1799 +-
media/nls/src/c_1252.txt | 1915 +-
media/nls/src/c_1253.txt | 1763 +-
media/nls/src/c_1254.txt | 1907 +-
media/nls/src/c_1255.txt | 1222 +-
media/nls/src/c_1256.txt | 1606 +-
media/nls/src/c_1257.txt | 1219 +-
media/nls/src/c_1258.txt | 1219 +-
media/nls/src/c_1361.txt | 35302 +++++++++++++++++++++++++++++++
media/nls/src/c_20000.txt | 35239 +++++++++++++++++++++++++++++++
media/nls/src/c_20001.txt | 39473 ++++++++++++++++++++++++++++++++++
media/nls/src/c_20002.txt | 30215 ++++++++++++++++++++++++++
media/nls/src/c_20003.txt | 37931 +++++++++++++++++++++++++++++++++
media/nls/src/c_20004.txt | 27286 ++++++++++++++++++++++++
media/nls/src/c_20005.txt | 37508 +++++++++++++++++++++++++++++++++
media/nls/src/c_20105.txt | 1547 +-
media/nls/src/c_20106.txt | 1531 +-
media/nls/src/c_20107.txt | 1519 +-
media/nls/src/c_20108.txt | 1528 +-
media/nls/src/c_20127.txt | 1544 +-
media/nls/src/c_20261.txt | 1054 +
media/nls/src/c_20269.txt | 1027 +-
media/nls/src/c_20273.txt | 1223 +-
media/nls/src/c_20277.txt | 1223 +-
media/nls/src/c_20278.txt | 1223 +-
media/nls/src/c_20280.txt | 1223 +-
media/nls/src/c_20284.txt | 1223 +-
media/nls/src/c_20285.txt | 1223 +-
media/nls/src/c_20290.txt | 1165 +-
media/nls/src/c_20297.txt | 1223 +-
media/nls/src/c_20420.txt | 1355 +-
media/nls/src/c_20423.txt | 1195 +-
media/nls/src/c_20424.txt | 1143 +-
media/nls/src/c_20833.txt | 1143 +-
media/nls/src/c_20838.txt | 1209 +-
media/nls/src/c_20866.txt | 1584 +-
media/nls/src/c_20871.txt | 1221 +-
media/nls/src/c_20880.txt | 1219 +-
media/nls/src/c_20905.txt | 1205 +-
media/nls/src/c_20924.txt | 1221 +-
media/nls/src/c_21025.txt | 1219 +-
media/nls/src/c_21027.txt | 1032 +-
media/nls/src/c_21866.txt | 1580 +-
media/nls/src/c_28591.txt | 1629 +-
media/nls/src/c_28592.txt | 1626 +-
media/nls/src/c_28593.txt | 1637 +-
media/nls/src/c_28594.txt | 1629 +-
media/nls/src/c_28595.txt | 1796 +-
media/nls/src/c_28596.txt | 1795 +-
media/nls/src/c_28597.txt | 1774 +-
media/nls/src/c_28598.txt | 1757 +-
media/nls/src/c_28599.txt | 1626 +-
media/nls/src/c_28600.txt | 2 +-
media/nls/src/c_28603.txt | 2494 +--
media/nls/src/c_28604.txt | 2 +-
media/nls/src/c_28605.txt | 1619 +-
media/nls/src/c_28606.txt | 2 +-
media/nls/src/c_29001.txt | 525 +
media/nls/src/c_424.txt | 2 +-
media/nls/src/c_437.txt | 2267 +-
media/nls/src/c_500.txt | 1223 +-
media/nls/src/c_708.txt | 1294 +-
media/nls/src/c_720.txt | 1770 +-
media/nls/src/c_737.txt | 1575 +-
media/nls/src/c_775.txt | 2058 +-
media/nls/src/c_850.txt | 2259 +-
media/nls/src/c_852.txt | 2182 +-
media/nls/src/c_855.txt | 1893 +-
media/nls/src/c_857.txt | 2189 +-
media/nls/src/c_858.txt | 2260 +-
media/nls/src/c_860.txt | 2082 +-
media/nls/src/c_861.txt | 2082 +-
media/nls/src/c_862.txt | 2265 +-
media/nls/src/c_863.txt | 2081 +-
media/nls/src/c_864.txt | 1391 +-
media/nls/src/c_865.txt | 2082 +-
media/nls/src/c_866.txt | 2063 +-
media/nls/src/c_869.txt | 1848 +-
media/nls/src/c_870.txt | 1221 +-
media/nls/src/c_874.txt | 1597 +-
media/nls/src/c_875.txt | 1211 +-
media/nls/src/c_932.txt | 19493 +++++++++++++++++
media/nls/src/c_936.txt | 48948 +++++++++++++++++++++++++++++++++++++++++++
media/nls/src/c_949.txt | 35519 +++++++++++++++++++++++++++++++
media/nls/src/c_950.txt | 40567 +++++++++++++++++++++++++++++++++++
sdk/cmake/host-tools.cmake | 2 +-
221 files changed, 548980 insertions(+), 70713 deletions(-)
diff --git a/media/nls/CMakeLists.txt b/media/nls/CMakeLists.txt
index 8127c965dc5..7479bc16df3 100644
--- a/media/nls/CMakeLists.txt
+++ b/media/nls/CMakeLists.txt
@@ -1,119 +1,155 @@
-add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/l_intl.nls DESTINATION reactos/system32 NO_CAB FOR all)
-add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/c_437.nls DESTINATION reactos/system32 NO_CAB FOR all)
-add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/c_1252.nls DESTINATION reactos/system32 NO_CAB FOR all)
+# These files are taken from here
+# https://download.microsoft.com/download/C/F/7/CF713A5E-9FBC-4FD6-9246-275F6… Supported Code Page Data Files.zip
+# Except for c_1006.txt c_28600.txt c_28604.txt c_28606.txt c_424.txt which were manually created
+list(APPEND GEN_NLS
+ c_037
+ c_10000
+ c_10001
+ c_10002
+ c_10003
+ c_10004
+ c_10005
+ c_10006
+ c_10007
+ c_10008
+ c_10010
+ c_10017
+ c_10021
+ c_10029
+ c_10079
+ c_10081
+ c_10082
+ c_1006
+ c_1026
+ c_1047
+ c_1140
+ c_1141
+ c_1142
+ c_1143
+ c_1144
+ c_1145
+ c_1146
+ c_1147
+ c_1148
+ c_1149
+ c_1250
+ c_1251
+ c_1252
+ c_1253
+ c_1254
+ c_1255
+ c_1256
+ c_1257
+ c_1258
+ c_1361
+ c_20000
+ c_20001
+ c_20002
+ c_20003
+ c_20004
+ c_20005
+ c_20105
+ c_20106
+ c_20107
+ c_20108
+ c_20127
+ c_20261
+ c_20269
+ c_20273
+ c_20277
+ c_20278
+ c_20280
+ c_20284
+ c_20285
+ c_20290
+ c_20297
+ c_20420
+ c_20423
+ c_20424
+ c_20833
+ c_20838
+ c_20866
+ c_20871
+ c_20880
+ c_20905
+ c_20924
+ c_21025
+ c_21027
+ c_21866
+ c_28591
+ c_28592
+ c_28593
+ c_28594
+ c_28595
+ c_28596
+ c_28597
+ c_28598
+ c_28599
+ c_28600
+ c_28603
+ c_28604
+ c_28605
+ c_28606
+ c_29001
+ c_424
+ c_437
+ c_500
+ c_708
+ c_720
+ c_737
+ c_775
+ c_850
+ c_852
+ c_855
+ c_857
+ c_858
+ c_860
+ c_861
+ c_862
+ c_863
+ c_864
+ c_865
+ c_866
+ c_869
+ c_870
+ c_874
+ c_875
+ c_932
+ c_936
+ c_949
+ c_950)
+
+foreach(NLS ${GEN_NLS})
+ add_custom_command(
+ OUTPUT ${NLS}.nls
+ COMMAND native-txt2nls ${CMAKE_CURRENT_SOURCE_DIR}/src/${NLS}.txt ${NLS}.nls
+ DEPENDS native-txt2nls ${CMAKE_CURRENT_SOURCE_DIR}/src/${NLS}.txt)
+
+ # Special case for system ones
+ if ((NLS STREQUAL "c_437") OR (NLS STREQUAL "c_1252"))
+ add_cd_file(TARGET gen_nls FILE ${CMAKE_CURRENT_BINARY_DIR}/${NLS}.nls DESTINATION reactos/system32 NO_CAB FOR all)
+ else()
+ add_cd_file(TARGET gen_nls FILE ${CMAKE_CURRENT_BINARY_DIR}/${NLS}.nls DESTINATION reactos/system32 FOR all)
+ endif()
+endforeach()
+list(TRANSFORM GEN_NLS APPEND ".nls")
+list(TRANSFORM GEN_NLS PREPEND "${CMAKE_CURRENT_BINARY_DIR}/")
+add_custom_target(gen_nls DEPENDS ${GEN_NLS})
+
+# those ones were manually generated
+add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/l_intl.nls DESTINATION reactos/system32 NO_CAB FOR all)
list(APPEND NLS_FILES
- c_037.nls
- c_424.nls
- c_500.nls
- c_708.nls
- c_720.nls
- c_737.nls
- c_775.nls
- c_850.nls
- c_852.nls
- c_855.nls
c_856.nls
- c_857.nls
- c_858.nls
- c_860.nls
- c_861.nls
- c_862.nls
- c_863.nls
- c_864.nls
- c_865.nls
- c_866.nls
- c_869.nls
- c_870.nls
- c_874.nls
- c_875.nls
c_878.nls
- c_932.nls
- c_936.nls
- c_949.nls
- c_950.nls
- c_1006.nls
- c_1026.nls
- c_1047.nls
- c_1140.nls
- c_1141.nls
- c_1142.nls
- c_1143.nls
- c_1144.nls
- c_1145.nls
- c_1146.nls
- c_1147.nls
- c_1148.nls
- c_1149.nls
- c_1250.nls
- c_1251.nls
- c_1253.nls
- c_1254.nls
- c_1255.nls
- c_1256.nls
- c_1257.nls
- c_1258.nls
- c_10000.nls
- c_10004.nls
- c_10005.nls
- c_10006.nls
- c_10007.nls
- c_10010.nls
- c_10017.nls
- c_10021.nls
- c_10029.nls
- c_10079.nls
- c_10081.nls
- c_10082.nls
- c_20105.nls
- c_20106.nls
- c_20107.nls
- c_20108.nls
- c_20127.nls
- c_20269.nls
- c_20273.nls
- c_20277.nls
- c_20278.nls
- c_20280.nls
- c_20284.nls
- c_20285.nls
- c_20290.nls
- c_20297.nls
- c_20420.nls
- c_20423.nls
- c_20424.nls
- c_20833.nls
- c_20838.nls
- c_20866.nls
- c_20871.nls
- c_20880.nls
- c_20905.nls
- c_20924.nls
- c_21025.nls
- c_21027.nls
- c_21866.nls
- c_28591.nls
- c_28592.nls
- c_28593.nls
- c_28594.nls
- c_28595.nls
- c_28596.nls
- c_28597.nls
- c_28598.nls
- c_28599.nls
- c_28600.nls
- c_28603.nls
- c_28604.nls
- c_28605.nls
- c_28606.nls
- unicode.nls
+ ctype.nls
geo.nls
- sorttbls.nls
+ l_except.nls
locale.nls
sortkey.nls
- ctype.nls
- l_except.nls)
+ sorttbls.nls
+ unicode.nls)
foreach(item ${NLS_FILES})
add_cd_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/${item}" DESTINATION reactos/system32 FOR all)
diff --git a/media/nls/c_037.nls b/media/nls/c_037.nls
deleted file mode 100644
index 887000624ad..00000000000
Binary files a/media/nls/c_037.nls and /dev/null differ
diff --git a/media/nls/c_10000.nls b/media/nls/c_10000.nls
deleted file mode 100644
index 80f8055857a..00000000000
Binary files a/media/nls/c_10000.nls and /dev/null differ
diff --git a/media/nls/c_10004.nls b/media/nls/c_10004.nls
deleted file mode 100644
index ffe7025be6f..00000000000
Binary files a/media/nls/c_10004.nls and /dev/null differ
diff --git a/media/nls/c_10005.nls b/media/nls/c_10005.nls
deleted file mode 100644
index 8e620f5e8c7..00000000000
Binary files a/media/nls/c_10005.nls and /dev/null differ
diff --git a/media/nls/c_10006.nls b/media/nls/c_10006.nls
deleted file mode 100644
index a4ddba7a11f..00000000000
Binary files a/media/nls/c_10006.nls and /dev/null differ
diff --git a/media/nls/c_10007.nls b/media/nls/c_10007.nls
deleted file mode 100644
index 90b87d5b9f0..00000000000
Binary files a/media/nls/c_10007.nls and /dev/null differ
diff --git a/media/nls/c_10010.nls b/media/nls/c_10010.nls
deleted file mode 100644
index d8f58efac41..00000000000
Binary files a/media/nls/c_10010.nls and /dev/null differ
diff --git a/media/nls/c_10017.nls b/media/nls/c_10017.nls
deleted file mode 100644
index b2f087072b2..00000000000
Binary files a/media/nls/c_10017.nls and /dev/null differ
diff --git a/media/nls/c_10021.nls b/media/nls/c_10021.nls
deleted file mode 100644
index ecb8a160014..00000000000
Binary files a/media/nls/c_10021.nls and /dev/null differ
diff --git a/media/nls/c_10029.nls b/media/nls/c_10029.nls
deleted file mode 100644
index 1ad1d57709b..00000000000
Binary files a/media/nls/c_10029.nls and /dev/null differ
diff --git a/media/nls/c_1006.nls b/media/nls/c_1006.nls
deleted file mode 100644
index 2847649b91c..00000000000
Binary files a/media/nls/c_1006.nls and /dev/null differ
diff --git a/media/nls/c_10079.nls b/media/nls/c_10079.nls
deleted file mode 100644
index fd030adb388..00000000000
Binary files a/media/nls/c_10079.nls and /dev/null differ
diff --git a/media/nls/c_10081.nls b/media/nls/c_10081.nls
deleted file mode 100644
index 61f1b370086..00000000000
Binary files a/media/nls/c_10081.nls and /dev/null differ
diff --git a/media/nls/c_10082.nls b/media/nls/c_10082.nls
deleted file mode 100644
index 3c3b107609b..00000000000
Binary files a/media/nls/c_10082.nls and /dev/null differ
diff --git a/media/nls/c_1026.nls b/media/nls/c_1026.nls
deleted file mode 100644
index a6997dd84b5..00000000000
Binary files a/media/nls/c_1026.nls and /dev/null differ
diff --git a/media/nls/c_1047.nls b/media/nls/c_1047.nls
deleted file mode 100644
index 868c55ac9a4..00000000000
Binary files a/media/nls/c_1047.nls and /dev/null differ
diff --git a/media/nls/c_1140.nls b/media/nls/c_1140.nls
deleted file mode 100644
index c1f949ae177..00000000000
Binary files a/media/nls/c_1140.nls and /dev/null differ
diff --git a/media/nls/c_1141.nls b/media/nls/c_1141.nls
deleted file mode 100644
index 85f71e32beb..00000000000
Binary files a/media/nls/c_1141.nls and /dev/null differ
diff --git a/media/nls/c_1142.nls b/media/nls/c_1142.nls
deleted file mode 100644
index d5dd617e30d..00000000000
Binary files a/media/nls/c_1142.nls and /dev/null differ
diff --git a/media/nls/c_1143.nls b/media/nls/c_1143.nls
deleted file mode 100644
index dfb2b25fc2c..00000000000
Binary files a/media/nls/c_1143.nls and /dev/null differ
diff --git a/media/nls/c_1144.nls b/media/nls/c_1144.nls
deleted file mode 100644
index 60ac047ef53..00000000000
Binary files a/media/nls/c_1144.nls and /dev/null differ
diff --git a/media/nls/c_1145.nls b/media/nls/c_1145.nls
deleted file mode 100644
index 75ed689e855..00000000000
Binary files a/media/nls/c_1145.nls and /dev/null differ
diff --git a/media/nls/c_1146.nls b/media/nls/c_1146.nls
deleted file mode 100644
index cfbb098ab17..00000000000
Binary files a/media/nls/c_1146.nls and /dev/null differ
diff --git a/media/nls/c_1147.nls b/media/nls/c_1147.nls
deleted file mode 100644
index ad351bb837f..00000000000
Binary files a/media/nls/c_1147.nls and /dev/null differ
diff --git a/media/nls/c_1148.nls b/media/nls/c_1148.nls
deleted file mode 100644
index a6ef0fa720d..00000000000
Binary files a/media/nls/c_1148.nls and /dev/null differ
diff --git a/media/nls/c_1149.nls b/media/nls/c_1149.nls
deleted file mode 100644
index 21a5056b5b6..00000000000
Binary files a/media/nls/c_1149.nls and /dev/null differ
diff --git a/media/nls/c_1250.nls b/media/nls/c_1250.nls
deleted file mode 100644
index d4e2ecb7764..00000000000
Binary files a/media/nls/c_1250.nls and /dev/null differ
diff --git a/media/nls/c_1251.nls b/media/nls/c_1251.nls
deleted file mode 100644
index ed674d95e4b..00000000000
Binary files a/media/nls/c_1251.nls and /dev/null differ
diff --git a/media/nls/c_1252.nls b/media/nls/c_1252.nls
deleted file mode 100644
index 92ac1b239c3..00000000000
Binary files a/media/nls/c_1252.nls and /dev/null differ
diff --git a/media/nls/c_1253.nls b/media/nls/c_1253.nls
deleted file mode 100644
index 5863c7262da..00000000000
Binary files a/media/nls/c_1253.nls and /dev/null differ
diff --git a/media/nls/c_1254.nls b/media/nls/c_1254.nls
deleted file mode 100644
index b66107971b8..00000000000
Binary files a/media/nls/c_1254.nls and /dev/null differ
diff --git a/media/nls/c_1255.nls b/media/nls/c_1255.nls
deleted file mode 100644
index 819a6b7fef2..00000000000
Binary files a/media/nls/c_1255.nls and /dev/null differ
diff --git a/media/nls/c_1256.nls b/media/nls/c_1256.nls
deleted file mode 100644
index ca7c1cd2827..00000000000
Binary files a/media/nls/c_1256.nls and /dev/null differ
diff --git a/media/nls/c_1257.nls b/media/nls/c_1257.nls
deleted file mode 100644
index da30785167e..00000000000
Binary files a/media/nls/c_1257.nls and /dev/null differ
diff --git a/media/nls/c_1258.nls b/media/nls/c_1258.nls
deleted file mode 100644
index 5f144909372..00000000000
Binary files a/media/nls/c_1258.nls and /dev/null differ
diff --git a/media/nls/c_20105.nls b/media/nls/c_20105.nls
deleted file mode 100644
index 497b5f7be52..00000000000
Binary files a/media/nls/c_20105.nls and /dev/null differ
diff --git a/media/nls/c_20106.nls b/media/nls/c_20106.nls
deleted file mode 100644
index 292024df425..00000000000
Binary files a/media/nls/c_20106.nls and /dev/null differ
diff --git a/media/nls/c_20107.nls b/media/nls/c_20107.nls
deleted file mode 100644
index 7d5c7303b01..00000000000
Binary files a/media/nls/c_20107.nls and /dev/null differ
diff --git a/media/nls/c_20108.nls b/media/nls/c_20108.nls
deleted file mode 100644
index b1780fd50ea..00000000000
Binary files a/media/nls/c_20108.nls and /dev/null differ
diff --git a/media/nls/c_20127.nls b/media/nls/c_20127.nls
deleted file mode 100644
index 1317a7187a4..00000000000
Binary files a/media/nls/c_20127.nls and /dev/null differ
diff --git a/media/nls/c_20269.nls b/media/nls/c_20269.nls
deleted file mode 100644
index 4d73c8a600d..00000000000
Binary files a/media/nls/c_20269.nls and /dev/null differ
diff --git a/media/nls/c_20273.nls b/media/nls/c_20273.nls
deleted file mode 100644
index cbc792caf33..00000000000
Binary files a/media/nls/c_20273.nls and /dev/null differ
diff --git a/media/nls/c_20277.nls b/media/nls/c_20277.nls
deleted file mode 100644
index 748d03a118b..00000000000
Binary files a/media/nls/c_20277.nls and /dev/null differ
diff --git a/media/nls/c_20278.nls b/media/nls/c_20278.nls
deleted file mode 100644
index e74500c1394..00000000000
Binary files a/media/nls/c_20278.nls and /dev/null differ
diff --git a/media/nls/c_20280.nls b/media/nls/c_20280.nls
deleted file mode 100644
index 4c74f137b26..00000000000
Binary files a/media/nls/c_20280.nls and /dev/null differ
diff --git a/media/nls/c_20284.nls b/media/nls/c_20284.nls
deleted file mode 100644
index fe27977d83e..00000000000
Binary files a/media/nls/c_20284.nls and /dev/null differ
diff --git a/media/nls/c_20285.nls b/media/nls/c_20285.nls
deleted file mode 100644
index cdafabf6847..00000000000
Binary files a/media/nls/c_20285.nls and /dev/null differ
diff --git a/media/nls/c_20290.nls b/media/nls/c_20290.nls
deleted file mode 100644
index 5fb5ba89594..00000000000
Binary files a/media/nls/c_20290.nls and /dev/null differ
diff --git a/media/nls/c_20297.nls b/media/nls/c_20297.nls
deleted file mode 100644
index 3edfa5075ff..00000000000
Binary files a/media/nls/c_20297.nls and /dev/null differ
diff --git a/media/nls/c_20420.nls b/media/nls/c_20420.nls
deleted file mode 100644
index 4261b924564..00000000000
Binary files a/media/nls/c_20420.nls and /dev/null differ
diff --git a/media/nls/c_20423.nls b/media/nls/c_20423.nls
deleted file mode 100644
index e651f113a45..00000000000
Binary files a/media/nls/c_20423.nls and /dev/null differ
diff --git a/media/nls/c_20424.nls b/media/nls/c_20424.nls
deleted file mode 100644
index 8b502a6b16d..00000000000
Binary files a/media/nls/c_20424.nls and /dev/null differ
diff --git a/media/nls/c_20833.nls b/media/nls/c_20833.nls
deleted file mode 100644
index f3035ac3974..00000000000
Binary files a/media/nls/c_20833.nls and /dev/null differ
diff --git a/media/nls/c_20838.nls b/media/nls/c_20838.nls
deleted file mode 100644
index 2f20ac25837..00000000000
Binary files a/media/nls/c_20838.nls and /dev/null differ
diff --git a/media/nls/c_20866.nls b/media/nls/c_20866.nls
deleted file mode 100644
index c39a88ab081..00000000000
Binary files a/media/nls/c_20866.nls and /dev/null differ
diff --git a/media/nls/c_20871.nls b/media/nls/c_20871.nls
deleted file mode 100644
index 770f94ff9d1..00000000000
Binary files a/media/nls/c_20871.nls and /dev/null differ
diff --git a/media/nls/c_20880.nls b/media/nls/c_20880.nls
deleted file mode 100644
index a7d13924368..00000000000
Binary files a/media/nls/c_20880.nls and /dev/null differ
diff --git a/media/nls/c_20905.nls b/media/nls/c_20905.nls
deleted file mode 100644
index acdbee8c277..00000000000
Binary files a/media/nls/c_20905.nls and /dev/null differ
diff --git a/media/nls/c_20924.nls b/media/nls/c_20924.nls
deleted file mode 100644
index 9d6d01c7d16..00000000000
Binary files a/media/nls/c_20924.nls and /dev/null differ
diff --git a/media/nls/c_21025.nls b/media/nls/c_21025.nls
deleted file mode 100644
index 9a1256878f2..00000000000
Binary files a/media/nls/c_21025.nls and /dev/null differ
diff --git a/media/nls/c_21027.nls b/media/nls/c_21027.nls
deleted file mode 100644
index 565608f6225..00000000000
Binary files a/media/nls/c_21027.nls and /dev/null differ
diff --git a/media/nls/c_21866.nls b/media/nls/c_21866.nls
deleted file mode 100644
index ba2d77614cf..00000000000
Binary files a/media/nls/c_21866.nls and /dev/null differ
diff --git a/media/nls/c_28591.nls b/media/nls/c_28591.nls
deleted file mode 100644
index 2f8fd2d0774..00000000000
Binary files a/media/nls/c_28591.nls and /dev/null differ
diff --git a/media/nls/c_28592.nls b/media/nls/c_28592.nls
deleted file mode 100644
index 683d8387ba7..00000000000
Binary files a/media/nls/c_28592.nls and /dev/null differ
diff --git a/media/nls/c_28593.nls b/media/nls/c_28593.nls
deleted file mode 100644
index 2c81ca34a0c..00000000000
Binary files a/media/nls/c_28593.nls and /dev/null differ
diff --git a/media/nls/c_28594.nls b/media/nls/c_28594.nls
deleted file mode 100644
index c65db932ded..00000000000
Binary files a/media/nls/c_28594.nls and /dev/null differ
diff --git a/media/nls/c_28595.nls b/media/nls/c_28595.nls
deleted file mode 100644
index 93d97efb794..00000000000
Binary files a/media/nls/c_28595.nls and /dev/null differ
diff --git a/media/nls/c_28596.nls b/media/nls/c_28596.nls
deleted file mode 100644
index 9c2a8fccbd8..00000000000
Binary files a/media/nls/c_28596.nls and /dev/null differ
diff --git a/media/nls/c_28597.nls b/media/nls/c_28597.nls
deleted file mode 100644
index 4454953ad8e..00000000000
Binary files a/media/nls/c_28597.nls and /dev/null differ
diff --git a/media/nls/c_28598.nls b/media/nls/c_28598.nls
deleted file mode 100644
index f86d90379ab..00000000000
Binary files a/media/nls/c_28598.nls and /dev/null differ
diff --git a/media/nls/c_28599.nls b/media/nls/c_28599.nls
deleted file mode 100644
index aea82b6fb6a..00000000000
Binary files a/media/nls/c_28599.nls and /dev/null differ
diff --git a/media/nls/c_28600.nls b/media/nls/c_28600.nls
deleted file mode 100644
index 455b09c0e07..00000000000
Binary files a/media/nls/c_28600.nls and /dev/null differ
diff --git a/media/nls/c_28603.nls b/media/nls/c_28603.nls
deleted file mode 100644
index ec1b63109b9..00000000000
Binary files a/media/nls/c_28603.nls and /dev/null differ
diff --git a/media/nls/c_28604.nls b/media/nls/c_28604.nls
deleted file mode 100644
index eb1f446e69c..00000000000
Binary files a/media/nls/c_28604.nls and /dev/null differ
diff --git a/media/nls/c_28605.nls b/media/nls/c_28605.nls
deleted file mode 100644
index 85dbcc0ecf4..00000000000
Binary files a/media/nls/c_28605.nls and /dev/null differ
diff --git a/media/nls/c_28606.nls b/media/nls/c_28606.nls
deleted file mode 100644
index 67e911e9df5..00000000000
Binary files a/media/nls/c_28606.nls and /dev/null differ
diff --git a/media/nls/c_424.nls b/media/nls/c_424.nls
deleted file mode 100644
index df8a282a836..00000000000
Binary files a/media/nls/c_424.nls and /dev/null differ
diff --git a/media/nls/c_437.nls b/media/nls/c_437.nls
deleted file mode 100644
index e3d5efd15ed..00000000000
Binary files a/media/nls/c_437.nls and /dev/null differ
diff --git a/media/nls/c_500.nls b/media/nls/c_500.nls
deleted file mode 100644
index 82adf19b679..00000000000
Binary files a/media/nls/c_500.nls and /dev/null differ
diff --git a/media/nls/c_708.nls b/media/nls/c_708.nls
deleted file mode 100644
index bfab7c9538a..00000000000
Binary files a/media/nls/c_708.nls and /dev/null differ
diff --git a/media/nls/c_720.nls b/media/nls/c_720.nls
deleted file mode 100644
index 8d3d950e70a..00000000000
Binary files a/media/nls/c_720.nls and /dev/null differ
diff --git a/media/nls/c_737.nls b/media/nls/c_737.nls
deleted file mode 100644
index e44870b0968..00000000000
Binary files a/media/nls/c_737.nls and /dev/null differ
diff --git a/media/nls/c_775.nls b/media/nls/c_775.nls
deleted file mode 100644
index b14f9ea5e63..00000000000
Binary files a/media/nls/c_775.nls and /dev/null differ
diff --git a/media/nls/c_850.nls b/media/nls/c_850.nls
deleted file mode 100644
index 7b8fcaee181..00000000000
Binary files a/media/nls/c_850.nls and /dev/null differ
diff --git a/media/nls/c_852.nls b/media/nls/c_852.nls
deleted file mode 100644
index 4c6cf7c4724..00000000000
Binary files a/media/nls/c_852.nls and /dev/null differ
diff --git a/media/nls/c_855.nls b/media/nls/c_855.nls
deleted file mode 100644
index 7048fab4abc..00000000000
Binary files a/media/nls/c_855.nls and /dev/null differ
diff --git a/media/nls/c_857.nls b/media/nls/c_857.nls
deleted file mode 100644
index 3dace9bb75f..00000000000
Binary files a/media/nls/c_857.nls and /dev/null differ
diff --git a/media/nls/c_858.nls b/media/nls/c_858.nls
deleted file mode 100644
index 7daf1ea3182..00000000000
Binary files a/media/nls/c_858.nls and /dev/null differ
diff --git a/media/nls/c_860.nls b/media/nls/c_860.nls
deleted file mode 100644
index 75e5c16e239..00000000000
Binary files a/media/nls/c_860.nls and /dev/null differ
diff --git a/media/nls/c_861.nls b/media/nls/c_861.nls
deleted file mode 100644
index 9531420ed68..00000000000
Binary files a/media/nls/c_861.nls and /dev/null differ
diff --git a/media/nls/c_862.nls b/media/nls/c_862.nls
deleted file mode 100644
index 40d3d1d8086..00000000000
Binary files a/media/nls/c_862.nls and /dev/null differ
diff --git a/media/nls/c_863.nls b/media/nls/c_863.nls
deleted file mode 100644
index e63f0f07c96..00000000000
Binary files a/media/nls/c_863.nls and /dev/null differ
diff --git a/media/nls/c_864.nls b/media/nls/c_864.nls
deleted file mode 100644
index 0ac4fc01c60..00000000000
Binary files a/media/nls/c_864.nls and /dev/null differ
diff --git a/media/nls/c_865.nls b/media/nls/c_865.nls
deleted file mode 100644
index 864477a7324..00000000000
Binary files a/media/nls/c_865.nls and /dev/null differ
diff --git a/media/nls/c_866.nls b/media/nls/c_866.nls
deleted file mode 100644
index 5c883256cdc..00000000000
Binary files a/media/nls/c_866.nls and /dev/null differ
diff --git a/media/nls/c_869.nls b/media/nls/c_869.nls
deleted file mode 100644
index 4c74c8e98d4..00000000000
Binary files a/media/nls/c_869.nls and /dev/null differ
diff --git a/media/nls/c_870.nls b/media/nls/c_870.nls
deleted file mode 100644
index aa1676b3b37..00000000000
Binary files a/media/nls/c_870.nls and /dev/null differ
diff --git a/media/nls/c_874.nls b/media/nls/c_874.nls
deleted file mode 100644
index c27d8c75ff4..00000000000
Binary files a/media/nls/c_874.nls and /dev/null differ
diff --git a/media/nls/c_875.nls b/media/nls/c_875.nls
deleted file mode 100644
index d99cfb11de0..00000000000
Binary files a/media/nls/c_875.nls and /dev/null differ
diff --git a/media/nls/c_932.nls b/media/nls/c_932.nls
deleted file mode 100644
index 67da2ab613f..00000000000
Binary files a/media/nls/c_932.nls and /dev/null differ
diff --git a/media/nls/c_936.nls b/media/nls/c_936.nls
deleted file mode 100644
index 480e0f290f1..00000000000
Binary files a/media/nls/c_936.nls and /dev/null differ
diff --git a/media/nls/c_949.nls b/media/nls/c_949.nls
deleted file mode 100644
index 2dcf67aee6e..00000000000
Binary files a/media/nls/c_949.nls and /dev/null differ
diff --git a/media/nls/c_950.nls b/media/nls/c_950.nls
deleted file mode 100644
index f2829dd2227..00000000000
Binary files a/media/nls/c_950.nls and /dev/null differ
diff --git a/media/nls/src/c_037.txt b/media/nls/src/c_037.txt
index a8a92c76c7c..11730f9eafc 100644
--- a/media/nls/src/c_037.txt
+++ b/media/nls/src/c_037.txt
@@ -1,616 +1,621 @@
-CODEPAGE 37
+CODEPAGE 037 ;IBM EBCDIC U.S./Canada
-CPINFO 1 0x6F 0x003F
+CPINFO 1 0x6f 0x003f ;Single Byte CP, Default Char = Question Mark
-MBTABLE 255
+MBTABLE 256
-0x00 0x0000 ;Null
-0x01 0x0001 ;Start Of Heading
-0x02 0x0002 ;Start Of Text
-0x03 0x0003 ;End Of Text
-0x04 0x009C ;String Terminator
-0x05 0x0009 ;Character Tabulation
-0x06 0x0086 ;Start Of Selected Area
-0x07 0x007F ;Delete
-0x08 0x0097 ;End Of Guarded Area
-0x09 0x008D ;Reverse Line Feed
-0x0A 0x008E ;Single Shift Two
-0x0B 0x000B ;Line Tabulation
-0x0C 0x000C ;Form Feed (FF)
-0x0D 0x000D ;Carriage Return (CR)
-0x0E 0x000E ;Shift Out
-0x0F 0x000F ;Shift In
-0x10 0x0010 ;Data Link Escape
-0x11 0x0011 ;Device Control One
-0x12 0x0012 ;Device Control Two
-0x13 0x0013 ;Device Control Three
-0x14 0x009D ;Operating System Command
-0x15 0x0085 ;Next Line (NEL)
-0x16 0x0008 ;Backspace
-0x17 0x0087 ;End Of Selected Area
-0x18 0x0018 ;Cancel
-0x19 0x0019 ;End Of Medium
-0x1A 0x0092 ;Private Use Two
-0x1B 0x008F ;Single Shift Three
-0x1C 0x001C ;Information Separator Four
-0x1D 0x001D ;Information Separator Three
-0x1E 0x001E ;Information Separator Two
-0x1F 0x001F ;Information Separator One
-0x20 0x0080 ;Undefined
-0x21 0x0081 ;Undefined
-0x22 0x0082 ;Break Permitted Here
-0x23 0x0083 ;No Break Here
-0x24 0x0084 ;Undefined
-0x25 0x000A ;Line Feed (LF)
-0x26 0x0017 ;End Of Transmission Block
-0x27 0x001B ;Escape
-0x28 0x0088 ;Character Tabulation Set
-0x29 0x0089 ;Character Tabulation With Justification
-0x2A 0x008A ;Line Tabulation Set
-0x2B 0x008B ;Partial Line Forward
-0x2C 0x008C ;Partial Line Backward
-0x2D 0x0005 ;Enquiry
-0x2E 0x0006 ;Acknowledge
-0x2F 0x0007 ;Bell
-0x30 0x0090 ;Device Control String
-0x31 0x0091 ;Private Use One
-0x32 0x0016 ;Synchronous Idle
-0x33 0x0093 ;Set Transmit State
-0x34 0x0094 ;Cancel Character
-0x35 0x0095 ;Message Waiting
-0x36 0x0096 ;Start Of Guarded Area
-0x37 0x0004 ;End Of Transmission
-0x38 0x0098 ;Start Of String
-0x39 0x0099 ;Undefined
-0x3A 0x009A ;Single Character Introducer
-0x3B 0x009B ;Control Sequence Introducer
-0x3C 0x0014 ;Device Control Four
-0x3D 0x0015 ;Negative Acknowledge
-0x3E 0x009E ;Privacy Message
-0x3F 0x001A ;Substitute
-0x40 0x0020 ;Space
-0x41 0x00A0 ;No-Break Space
-0x42 0x00E2 ;Latin Small Letter A With Circumflex
-0x43 0x00E4 ;Latin Small Letter A With Diaeresis
-0x44 0x00E0 ;Latin Small Letter A With Grave
-0x45 0x00E1 ;Latin Small Letter A With Acute
-0x46 0x00E3 ;Latin Small Letter A With Tilde
-0x47 0x00E5 ;Latin Small Letter A With Ring Above
-0x48 0x00E7 ;Latin Small Letter C With Cedilla
-0x49 0x00F1 ;Latin Small Letter N With Tilde
-0x4A 0x00A2 ;Cent Sign
-0x4B 0x002E ;Full Stop
-0x4C 0x003C ;Less-Than Sign
-0x4D 0x0028 ;Left Parenthesis
-0x4E 0x002B ;Plus Sign
-0x4F 0x007C ;Vertical Line
-0x50 0x0026 ;Ampersand
-0x51 0x00E9 ;Latin Small Letter E With Acute
-0x52 0x00EA ;Latin Small Letter E With Circumflex
-0x53 0x00EB ;Latin Small Letter E With Diaeresis
-0x54 0x00E8 ;Latin Small Letter E With Grave
-0x55 0x00ED ;Latin Small Letter I With Acute
-0x56 0x00EE ;Latin Small Letter I With Circumflex
-0x57 0x00EF ;Latin Small Letter I With Diaeresis
-0x58 0x00EC ;Latin Small Letter I With Grave
-0x59 0x00DF ;Latin Small Letter Sharp S
-0x5A 0x0021 ;Exclamation Mark
-0x5B 0x0024 ;Dollar Sign
-0x5C 0x002A ;Asterisk
-0x5D 0x0029 ;Right Parenthesis
-0x5E 0x003B ;Semicolon
-0x5F 0x00AC ;Not Sign
-0x60 0x002D ;Hyphen-Minus
-0x61 0x002F ;Solidus
-0x62 0x00C2 ;Latin Capital Letter A With Circumflex
-0x63 0x00C4 ;Latin Capital Letter A With Diaeresis
-0x64 0x00C0 ;Latin Capital Letter A With Grave
-0x65 0x00C1 ;Latin Capital Letter A With Acute
-0x66 0x00C3 ;Latin Capital Letter A With Tilde
-0x67 0x00C5 ;Latin Capital Letter A With Ring Above
-0x68 0x00C7 ;Latin Capital Letter C With Cedilla
-0x69 0x00D1 ;Latin Capital Letter N With Tilde
-0x6A 0x00A6 ;Broken Bar
-0x6B 0x002C ;Comma
-0x6C 0x0025 ;Percent Sign
-0x6D 0x005F ;Low Line
-0x6E 0x003E ;Greater-Than Sign
-0x70 0x00F8 ;Latin Small Letter O With Stroke
-0x71 0x00C9 ;Latin Capital Letter E With Acute
-0x72 0x00CA ;Latin Capital Letter E With Circumflex
-0x73 0x00CB ;Latin Capital Letter E With Diaeresis
-0x74 0x00C8 ;Latin Capital Letter E With Grave
-0x75 0x00CD ;Latin Capital Letter I With Acute
-0x76 0x00CE ;Latin Capital Letter I With Circumflex
-0x77 0x00CF ;Latin Capital Letter I With Diaeresis
-0x78 0x00CC ;Latin Capital Letter I With Grave
-0x79 0x0060 ;Grave Accent
-0x7A 0x003A ;Colon
-0x7B 0x0023 ;Number Sign
-0x7C 0x0040 ;Commercial At
-0x7D 0x0027 ;Apostrophe
-0x7E 0x003D ;Equals Sign
-0x7F 0x0022 ;Quotation Mark
-0x80 0x00D8 ;Latin Capital Letter O With Stroke
-0x81 0x0061 ;Latin Small Letter A
-0x82 0x0062 ;Latin Small Letter B
-0x83 0x0063 ;Latin Small Letter C
-0x84 0x0064 ;Latin Small Letter D
-0x85 0x0065 ;Latin Small Letter E
-0x86 0x0066 ;Latin Small Letter F
-0x87 0x0067 ;Latin Small Letter G
-0x88 0x0068 ;Latin Small Letter H
-0x89 0x0069 ;Latin Small Letter I
-0x8A 0x00AB ;Left-Pointing Double Angle Quotation Mark
-0x8B 0x00BB ;Right-Pointing Double Angle Quotation Mark
-0x8C 0x00F0 ;Latin Small Letter Eth
-0x8D 0x00FD ;Latin Small Letter Y With Acute
-0x8E 0x00FE ;Latin Small Letter Thorn
-0x8F 0x00B1 ;Plus-Minus Sign
-0x90 0x00B0 ;Degree Sign
-0x91 0x006A ;Latin Small Letter J
-0x92 0x006B ;Latin Small Letter K
-0x93 0x006C ;Latin Small Letter L
-0x94 0x006D ;Latin Small Letter M
-0x95 0x006E ;Latin Small Letter N
-0x96 0x006F ;Latin Small Letter O
-0x97 0x0070 ;Latin Small Letter P
-0x98 0x0071 ;Latin Small Letter Q
-0x99 0x0072 ;Latin Small Letter R
-0x9A 0x00AA ;Feminine Ordinal Indicator
-0x9B 0x00BA ;Masculine Ordinal Indicator
-0x9C 0x00E6 ;Latin Small Letter Ae
-0x9D 0x00B8 ;Cedilla
-0x9E 0x00C6 ;Latin Capital Letter Ae
-0x9F 0x00A4 ;Currency Sign
-0xA0 0x00B5 ;Micro Sign
-0xA1 0x007E ;Tilde
-0xA2 0x0073 ;Latin Small Letter S
-0xA3 0x0074 ;Latin Small Letter T
-0xA4 0x0075 ;Latin Small Letter U
-0xA5 0x0076 ;Latin Small Letter V
-0xA6 0x0077 ;Latin Small Letter W
-0xA7 0x0078 ;Latin Small Letter X
-0xA8 0x0079 ;Latin Small Letter Y
-0xA9 0x007A ;Latin Small Letter Z
-0xAA 0x00A1 ;Inverted Exclamation Mark
-0xAB 0x00BF ;Inverted Question Mark
-0xAC 0x00D0 ;Latin Capital Letter Eth
-0xAD 0x00DD ;Latin Capital Letter Y With Acute
-0xAE 0x00DE ;Latin Capital Letter Thorn
-0xAF 0x00AE ;Registered Sign
-0xB0 0x005E ;Circumflex Accent
-0xB1 0x00A3 ;Pound Sign
-0xB2 0x00A5 ;Yen Sign
-0xB3 0x00B7 ;Middle Dot
-0xB4 0x00A9 ;Copyright Sign
-0xB5 0x00A7 ;Section Sign
-0xB6 0x00B6 ;Pilcrow Sign
-0xB7 0x00BC ;Vulgar Fraction One Quarter
-0xB8 0x00BD ;Vulgar Fraction One Half
-0xB9 0x00BE ;Vulgar Fraction Three Quarters
-0xBA 0x005B ;Left Square Bracket
-0xBB 0x005D ;Right Square Bracket
-0xBC 0x00AF ;Macron
-0xBD 0x00A8 ;Diaeresis
-0xBE 0x00B4 ;Acute Accent
-0xBF 0x00D7 ;Multiplication Sign
-0xC0 0x007B ;Left Curly Bracket
-0xC1 0x0041 ;Latin Capital Letter A
-0xC2 0x0042 ;Latin Capital Letter B
-0xC3 0x0043 ;Latin Capital Letter C
-0xC4 0x0044 ;Latin Capital Letter D
-0xC5 0x0045 ;Latin Capital Letter E
-0xC6 0x0046 ;Latin Capital Letter F
-0xC7 0x0047 ;Latin Capital Letter G
-0xC8 0x0048 ;Latin Capital Letter H
-0xC9 0x0049 ;Latin Capital Letter I
-0xCA 0x00AD ;Soft Hyphen
-0xCB 0x00F4 ;Latin Small Letter O With Circumflex
-0xCC 0x00F6 ;Latin Small Letter O With Diaeresis
-0xCD 0x00F2 ;Latin Small Letter O With Grave
-0xCE 0x00F3 ;Latin Small Letter O With Acute
-0xCF 0x00F5 ;Latin Small Letter O With Tilde
-0xD0 0x007D ;Right Curly Bracket
-0xD1 0x004A ;Latin Capital Letter J
-0xD2 0x004B ;Latin Capital Letter K
-0xD3 0x004C ;Latin Capital Letter L
-0xD4 0x004D ;Latin Capital Letter M
-0xD5 0x004E ;Latin Capital Letter N
-0xD6 0x004F ;Latin Capital Letter O
-0xD7 0x0050 ;Latin Capital Letter P
-0xD8 0x0051 ;Latin Capital Letter Q
-0xD9 0x0052 ;Latin Capital Letter R
-0xDA 0x00B9 ;Superscript One
-0xDB 0x00FB ;Latin Small Letter U With Circumflex
-0xDC 0x00FC ;Latin Small Letter U With Diaeresis
-0xDD 0x00F9 ;Latin Small Letter U With Grave
-0xDE 0x00FA ;Latin Small Letter U With Acute
-0xDF 0x00FF ;Latin Small Letter Y With Diaeresis
-0xE0 0x005C ;Reverse Solidus
-0xE1 0x00F7 ;Division Sign
-0xE2 0x0053 ;Latin Capital Letter S
-0xE3 0x0054 ;Latin Capital Letter T
-0xE4 0x0055 ;Latin Capital Letter U
-0xE5 0x0056 ;Latin Capital Letter V
-0xE6 0x0057 ;Latin Capital Letter W
-0xE7 0x0058 ;Latin Capital Letter X
-0xE8 0x0059 ;Latin Capital Letter Y
-0xE9 0x005A ;Latin Capital Letter Z
-0xEA 0x00B2 ;Superscript Two
-0xEB 0x00D4 ;Latin Capital Letter O With Circumflex
-0xEC 0x00D6 ;Latin Capital Letter O With Diaeresis
-0xED 0x00D2 ;Latin Capital Letter O With Grave
-0xEE 0x00D3 ;Latin Capital Letter O With Acute
-0xEF 0x00D5 ;Latin Capital Letter O With Tilde
-0xF0 0x0030 ;Digit Zero
-0xF1 0x0031 ;Digit One
-0xF2 0x0032 ;Digit Two
-0xF3 0x0033 ;Digit Three
-0xF4 0x0034 ;Digit Four
-0xF5 0x0035 ;Digit Five
-0xF6 0x0036 ;Digit Six
-0xF7 0x0037 ;Digit Seven
-0xF8 0x0038 ;Digit Eight
-0xF9 0x0039 ;Digit Nine
-0xFA 0x00B3 ;Superscript Three
-0xFB 0x00DB ;Latin Capital Letter U With Circumflex
-0xFC 0x00DC ;Latin Capital Letter U With Diaeresis
-0xFD 0x00D9 ;Latin Capital Letter U With Grave
-0xFE 0x00DA ;Latin Capital Letter U With Acute
-0xFF 0x009F ;Application Program Command
+0x00 0x0000 ;Null
+0x01 0x0001 ;Start Of Heading
+0x02 0x0002 ;Start Of Text
+0x03 0x0003 ;End Of Text
+0x04 0x009c ;Control
+0x05 0x0009 ;Horizontal Tabulation
+0x06 0x0086 ;Control
+0x07 0x007f ;Delete
+0x08 0x0097 ;Control
+0x09 0x008d ;Control
+0x0a 0x008e ;Control
+0x0b 0x000b ;Vertical Tabulation
+0x0c 0x000c ;Form Feed
+0x0d 0x000d ;Carriage Return
+0x0e 0x000e ;Shift Out
+0x0f 0x000f ;Shift In
+0x10 0x0010 ;Data Link Escape
+0x11 0x0011 ;Device Control One
+0x12 0x0012 ;Device Control Two
+0x13 0x0013 ;Device Control Three
+0x14 0x009d ;Control
+0x15 0x0085 ;Control
+0x16 0x0008 ;Backspace
+0x17 0x0087 ;Control
+0x18 0x0018 ;Cancel
+0x19 0x0019 ;End Of Medium
+0x1a 0x0092 ;Control
+0x1b 0x008f ;Control
+0x1c 0x001c ;File Separator
+0x1d 0x001d ;Group Separator
+0x1e 0x001e ;Record Separator
+0x1f 0x001f ;Unit Separator
+0x20 0x0080 ;Control
+0x21 0x0081 ;Control
+0x22 0x0082 ;Control
+0x23 0x0083 ;Control
+0x24 0x0084 ;Control
+0x25 0x000a ;Line Feed
+0x26 0x0017 ;End Of Transmission Block
+0x27 0x001b ;Escape
+0x28 0x0088 ;Control
+0x29 0x0089 ;Control
+0x2a 0x008a ;Control
+0x2b 0x008b ;Control
+0x2c 0x008c ;Control
+0x2d 0x0005 ;Enquiry
+0x2e 0x0006 ;Acknowledge
+0x2f 0x0007 ;Bell
+0x30 0x0090 ;Control
+0x31 0x0091 ;Control
+0x32 0x0016 ;Synchronous Idle
+0x33 0x0093 ;Control
+0x34 0x0094 ;Control
+0x35 0x0095 ;Control
+0x36 0x0096 ;Control
+0x37 0x0004 ;End Of Transmission
+0x38 0x0098 ;Control
+0x39 0x0099 ;Control
+0x3a 0x009a ;Control
+0x3b 0x009b ;Control
+0x3c 0x0014 ;Device Control Four
+0x3d 0x0015 ;Negative Acknowledge
+0x3e 0x009e ;Control
+0x3f 0x001a ;Substitute
+0x40 0x0020 ;Space
+0x41 0x00a0 ;No-Break Space
+0x42 0x00e2 ;Latin Small Letter A With Circumflex
+0x43 0x00e4 ;Latin Small Letter A With Diaeresis
+0x44 0x00e0 ;Latin Small Letter A With Grave
+0x45 0x00e1 ;Latin Small Letter A With Acute
+0x46 0x00e3 ;Latin Small Letter A With Tilde
+0x47 0x00e5 ;Latin Small Letter A With Ring Above
+0x48 0x00e7 ;Latin Small Letter C With Cedilla
+0x49 0x00f1 ;Latin Small Letter N With Tilde
+0x4a 0x00a2 ;Cent Sign
+0x4b 0x002e ;Full Stop
+0x4c 0x003c ;Less-Than Sign
+0x4d 0x0028 ;Left Parenthesis
+0x4e 0x002b ;Plus Sign
+0x4f 0x007c ;Vertical Line
+0x50 0x0026 ;Ampersand
+0x51 0x00e9 ;Latin Small Letter E With Acute
+0x52 0x00ea ;Latin Small Letter E With Circumflex
+0x53 0x00eb ;Latin Small Letter E With Diaeresis
+0x54 0x00e8 ;Latin Small Letter E With Grave
+0x55 0x00ed ;Latin Small Letter I With Acute
+0x56 0x00ee ;Latin Small Letter I With Circumflex
+0x57 0x00ef ;Latin Small Letter I With Diaeresis
+0x58 0x00ec ;Latin Small Letter I With Grave
+0x59 0x00df ;Latin Small Letter Sharp S (German)
+0x5a 0x0021 ;Exclamation Mark
+0x5b 0x0024 ;Dollar Sign
+0x5c 0x002a ;Asterisk
+0x5d 0x0029 ;Right Parenthesis
+0x5e 0x003b ;Semicolon
+0x5f 0x00ac ;Not Sign
+0x60 0x002d ;Hyphen-Minus
+0x61 0x002f ;Solidus
+0x62 0x00c2 ;Latin Capital Letter A With Circumflex
+0x63 0x00c4 ;Latin Capital Letter A With Diaeresis
+0x64 0x00c0 ;Latin Capital Letter A With Grave
+0x65 0x00c1 ;Latin Capital Letter A With Acute
+0x66 0x00c3 ;Latin Capital Letter A With Tilde
+0x67 0x00c5 ;Latin Capital Letter A With Ring Above
+0x68 0x00c7 ;Latin Capital Letter C With Cedilla
+0x69 0x00d1 ;Latin Capital Letter N With Tilde
+0x6a 0x00a6 ;Broken Bar
+0x6b 0x002c ;Comma
+0x6c 0x0025 ;Percent Sign
+0x6d 0x005f ;Low Line
+0x6e 0x003e ;Greater-Than Sign
+0x6f 0x003f ;Question Mark
+0x70 0x00f8 ;Latin Small Letter O With Stroke
+0x71 0x00c9 ;Latin Capital Letter E With Acute
+0x72 0x00ca ;Latin Capital Letter E With Circumflex
+0x73 0x00cb ;Latin Capital Letter E With Diaeresis
+0x74 0x00c8 ;Latin Capital Letter E With Grave
+0x75 0x00cd ;Latin Capital Letter I With Acute
+0x76 0x00ce ;Latin Capital Letter I With Circumflex
+0x77 0x00cf ;Latin Capital Letter I With Diaeresis
+0x78 0x00cc ;Latin Capital Letter I With Grave
+0x79 0x0060 ;Grave Accent
+0x7a 0x003a ;Colon
+0x7b 0x0023 ;Number Sign
+0x7c 0x0040 ;Commercial At
+0x7d 0x0027 ;Apostrophe
+0x7e 0x003d ;Equals Sign
+0x7f 0x0022 ;Quotation Mark
+0x80 0x00d8 ;Latin Capital Letter O With Stroke
+0x81 0x0061 ;Latin Small Letter A
+0x82 0x0062 ;Latin Small Letter B
+0x83 0x0063 ;Latin Small Letter C
+0x84 0x0064 ;Latin Small Letter D
+0x85 0x0065 ;Latin Small Letter E
+0x86 0x0066 ;Latin Small Letter F
+0x87 0x0067 ;Latin Small Letter G
+0x88 0x0068 ;Latin Small Letter H
+0x89 0x0069 ;Latin Small Letter I
+0x8a 0x00ab ;Left-Pointing Double Angle Quotation Mark
+0x8b 0x00bb ;Right-Pointing Double Angle Quotation Mark
+0x8c 0x00f0 ;Latin Small Letter Eth (Icelandic)
+0x8d 0x00fd ;Latin Small Letter Y With Acute
+0x8e 0x00fe ;Latin Small Letter Thorn (Icelandic)
+0x8f 0x00b1 ;Plus-Minus Sign
+0x90 0x00b0 ;Degree Sign
+0x91 0x006a ;Latin Small Letter J
+0x92 0x006b ;Latin Small Letter K
+0x93 0x006c ;Latin Small Letter L
+0x94 0x006d ;Latin Small Letter M
+0x95 0x006e ;Latin Small Letter N
+0x96 0x006f ;Latin Small Letter O
+0x97 0x0070 ;Latin Small Letter P
+0x98 0x0071 ;Latin Small Letter Q
+0x99 0x0072 ;Latin Small Letter R
+0x9a 0x00aa ;Feminine Ordinal Indicator
+0x9b 0x00ba ;Masculine Ordinal Indicator
+0x9c 0x00e6 ;Latin Small Ligature Ae
+0x9d 0x00b8 ;Cedilla
+0x9e 0x00c6 ;Latin Capital Ligature Ae
+0x9f 0x00a4 ;Currency Sign
+0xa0 0x00b5 ;Micro Sign
+0xa1 0x007e ;Tilde
+0xa2 0x0073 ;Latin Small Letter S
+0xa3 0x0074 ;Latin Small Letter T
+0xa4 0x0075 ;Latin Small Letter U
+0xa5 0x0076 ;Latin Small Letter V
+0xa6 0x0077 ;Latin Small Letter W
+0xa7 0x0078 ;Latin Small Letter X
+0xa8 0x0079 ;Latin Small Letter Y
+0xa9 0x007a ;Latin Small Letter Z
+0xaa 0x00a1 ;Inverted Exclamation Mark
+0xab 0x00bf ;Inverted Question Mark
+0xac 0x00d0 ;Latin Capital Letter Eth (Icelandic)
+0xad 0x00dd ;Latin Capital Letter Y With Acute
+0xae 0x00de ;Latin Capital Letter Thorn (Icelandic)
+0xaf 0x00ae ;Registered Sign
+0xb0 0x005e ;Circumflex Accent
+0xb1 0x00a3 ;Pound Sign
+0xb2 0x00a5 ;Yen Sign
+0xb3 0x00b7 ;Middle Dot
+0xb4 0x00a9 ;Copyright Sign
+0xb5 0x00a7 ;Section Sign
+0xb6 0x00b6 ;Pilcrow Sign
+0xb7 0x00bc ;Vulgar Fraction One Quarter
+0xb8 0x00bd ;Vulgar Fraction One Half
+0xb9 0x00be ;Vulgar Fraction Three Quarters
+0xba 0x005b ;Left Square Bracket
+0xbb 0x005d ;Right Square Bracket
+0xbc 0x00af ;Macron
+0xbd 0x00a8 ;Diaeresis
+0xbe 0x00b4 ;Acute Accent
+0xbf 0x00d7 ;Multiplication Sign
+0xc0 0x007b ;Left Curly Bracket
+0xc1 0x0041 ;Latin Capital Letter A
+0xc2 0x0042 ;Latin Capital Letter B
+0xc3 0x0043 ;Latin Capital Letter C
+0xc4 0x0044 ;Latin Capital Letter D
+0xc5 0x0045 ;Latin Capital Letter E
+0xc6 0x0046 ;Latin Capital Letter F
+0xc7 0x0047 ;Latin Capital Letter G
+0xc8 0x0048 ;Latin Capital Letter H
+0xc9 0x0049 ;Latin Capital Letter I
+0xca 0x00ad ;Soft Hyphen
+0xcb 0x00f4 ;Latin Small Letter O With Circumflex
+0xcc 0x00f6 ;Latin Small Letter O With Diaeresis
+0xcd 0x00f2 ;Latin Small Letter O With Grave
+0xce 0x00f3 ;Latin Small Letter O With Acute
+0xcf 0x00f5 ;Latin Small Letter O With Tilde
+0xd0 0x007d ;Right Curly Bracket
+0xd1 0x004a ;Latin Capital Letter J
+0xd2 0x004b ;Latin Capital Letter K
+0xd3 0x004c ;Latin Capital Letter L
+0xd4 0x004d ;Latin Capital Letter M
+0xd5 0x004e ;Latin Capital Letter N
+0xd6 0x004f ;Latin Capital Letter O
+0xd7 0x0050 ;Latin Capital Letter P
+0xd8 0x0051 ;Latin Capital Letter Q
+0xd9 0x0052 ;Latin Capital Letter R
+0xda 0x00b9 ;Superscript One
+0xdb 0x00fb ;Latin Small Letter U With Circumflex
+0xdc 0x00fc ;Latin Small Letter U With Diaeresis
+0xdd 0x00f9 ;Latin Small Letter U With Grave
+0xde 0x00fa ;Latin Small Letter U With Acute
+0xdf 0x00ff ;Latin Small Letter Y With Diaeresis
+0xe0 0x005c ;Reverse Solidus
+0xe1 0x00f7 ;Division Sign
+0xe2 0x0053 ;Latin Capital Letter S
+0xe3 0x0054 ;Latin Capital Letter T
+0xe4 0x0055 ;Latin Capital Letter U
+0xe5 0x0056 ;Latin Capital Letter V
+0xe6 0x0057 ;Latin Capital Letter W
+0xe7 0x0058 ;Latin Capital Letter X
+0xe8 0x0059 ;Latin Capital Letter Y
+0xe9 0x005a ;Latin Capital Letter Z
+0xea 0x00b2 ;Superscript Two
+0xeb 0x00d4 ;Latin Capital Letter O With Circumflex
+0xec 0x00d6 ;Latin Capital Letter O With Diaeresis
+0xed 0x00d2 ;Latin Capital Letter O With Grave
+0xee 0x00d3 ;Latin Capital Letter O With Acute
+0xef 0x00d5 ;Latin Capital Letter O With Tilde
+0xf0 0x0030 ;Digit Zero
+0xf1 0x0031 ;Digit One
+0xf2 0x0032 ;Digit Two
+0xf3 0x0033 ;Digit Three
+0xf4 0x0034 ;Digit Four
+0xf5 0x0035 ;Digit Five
+0xf6 0x0036 ;Digit Six
+0xf7 0x0037 ;Digit Seven
+0xf8 0x0038 ;Digit Eight
+0xf9 0x0039 ;Digit Nine
+0xfa 0x00b3 ;Superscript Three
+0xfb 0x00db ;Latin Capital Letter U With Circumflex
+0xfc 0x00dc ;Latin Capital Letter U With Diaeresis
+0xfd 0x00d9 ;Latin Capital Letter U With Grave
+0xfe 0x00da ;Latin Capital Letter U With Acute
+0xff 0x009f ;Control
-WCTABLE 350
-0x0000 0x00 ;Null
-0x0001 0x01 ;Start Of Heading
-0x0002 0x02 ;Start Of Text
-0x0003 0x03 ;End Of Text
-0x0004 0x37 ;End Of Transmission
-0x0005 0x2D ;Enquiry
-0x0006 0x2E ;Acknowledge
-0x0007 0x2F ;Bell
-0x0008 0x16 ;Backspace
-0x0009 0x05 ;Character Tabulation
-0x000A 0x25 ;Line Feed (LF)
-0x000B 0x0B ;Line Tabulation
-0x000C 0x0C ;Form Feed (FF)
-0x000D 0x0D ;Carriage Return (CR)
-0x000E 0x0E ;Shift Out
-0x000F 0x0F ;Shift In
-0x0010 0x10 ;Data Link Escape
-0x0011 0x11 ;Device Control One
-0x0012 0x12 ;Device Control Two
-0x0013 0x13 ;Device Control Three
-0x0014 0x3C ;Device Control Four
-0x0015 0x3D ;Negative Acknowledge
-0x0016 0x32 ;Synchronous Idle
-0x0017 0x26 ;End Of Transmission Block
-0x0018 0x18 ;Cancel
-0x0019 0x19 ;End Of Medium
-0x001A 0x3F ;Substitute
-0x001B 0x27 ;Escape
-0x001C 0x1C ;Information Separator Four
-0x001D 0x1D ;Information Separator Three
-0x001E 0x1E ;Information Separator Two
-0x001F 0x1F ;Information Separator One
-0x0020 0x40 ;Space
-0x0021 0x5A ;Exclamation Mark
-0x0022 0x7F ;Quotation Mark
-0x0023 0x7B ;Number Sign
-0x0024 0x5B ;Dollar Sign
-0x0025 0x6C ;Percent Sign
-0x0026 0x50 ;Ampersand
-0x0027 0x7D ;Apostrophe
-0x0028 0x4D ;Left Parenthesis
-0x0029 0x5D ;Right Parenthesis
-0x002A 0x5C ;Asterisk
-0x002B 0x4E ;Plus Sign
-0x002C 0x6B ;Comma
-0x002D 0x60 ;Hyphen-Minus
-0x002E 0x4B ;Full Stop
-0x002F 0x61 ;Solidus
-0x0030 0xF0 ;Digit Zero
-0x0031 0xF1 ;Digit One
-0x0032 0xF2 ;Digit Two
-0x0033 0xF3 ;Digit Three
-0x0034 0xF4 ;Digit Four
-0x0035 0xF5 ;Digit Five
-0x0036 0xF6 ;Digit Six
-0x0037 0xF7 ;Digit Seven
-0x0038 0xF8 ;Digit Eight
-0x0039 0xF9 ;Digit Nine
-0x003A 0x7A ;Colon
-0x003B 0x5E ;Semicolon
-0x003C 0x4C ;Less-Than Sign
-0x003D 0x7E ;Equals Sign
-0x003E 0x6E ;Greater-Than Sign
-0x0040 0x7C ;Commercial At
-0x0041 0xC1 ;Latin Capital Letter A
-0x0042 0xC2 ;Latin Capital Letter B
-0x0043 0xC3 ;Latin Capital Letter C
-0x0044 0xC4 ;Latin Capital Letter D
-0x0045 0xC5 ;Latin Capital Letter E
-0x0046 0xC6 ;Latin Capital Letter F
-0x0047 0xC7 ;Latin Capital Letter G
-0x0048 0xC8 ;Latin Capital Letter H
-0x0049 0xC9 ;Latin Capital Letter I
-0x004A 0xD1 ;Latin Capital Letter J
-0x004B 0xD2 ;Latin Capital Letter K
-0x004C 0xD3 ;Latin Capital Letter L
-0x004D 0xD4 ;Latin Capital Letter M
-0x004E 0xD5 ;Latin Capital Letter N
-0x004F 0xD6 ;Latin Capital Letter O
-0x0050 0xD7 ;Latin Capital Letter P
-0x0051 0xD8 ;Latin Capital Letter Q
-0x0052 0xD9 ;Latin Capital Letter R
-0x0053 0xE2 ;Latin Capital Letter S
-0x0054 0xE3 ;Latin Capital Letter T
-0x0055 0xE4 ;Latin Capital Letter U
-0x0056 0xE5 ;Latin Capital Letter V
-0x0057 0xE6 ;Latin Capital Letter W
-0x0058 0xE7 ;Latin Capital Letter X
-0x0059 0xE8 ;Latin Capital Letter Y
-0x005A 0xE9 ;Latin Capital Letter Z
-0x005B 0xBA ;Left Square Bracket
-0x005C 0xE0 ;Reverse Solidus
-0x005D 0xBB ;Right Square Bracket
-0x005E 0xB0 ;Circumflex Accent
-0x005F 0x6D ;Low Line
-0x0060 0x79 ;Grave Accent
-0x0061 0x81 ;Latin Small Letter A
-0x0062 0x82 ;Latin Small Letter B
-0x0063 0x83 ;Latin Small Letter C
-0x0064 0x84 ;Latin Small Letter D
-0x0065 0x85 ;Latin Small Letter E
-0x0066 0x86 ;Latin Small Letter F
-0x0067 0x87 ;Latin Small Letter G
-0x0068 0x88 ;Latin Small Letter H
-0x0069 0x89 ;Latin Small Letter I
-0x006A 0x91 ;Latin Small Letter J
-0x006B 0x92 ;Latin Small Letter K
-0x006C 0x93 ;Latin Small Letter L
-0x006D 0x94 ;Latin Small Letter M
-0x006E 0x95 ;Latin Small Letter N
-0x006F 0x96 ;Latin Small Letter O
-0x0070 0x97 ;Latin Small Letter P
-0x0071 0x98 ;Latin Small Letter Q
-0x0072 0x99 ;Latin Small Letter R
-0x0073 0xA2 ;Latin Small Letter S
-0x0074 0xA3 ;Latin Small Letter T
-0x0075 0xA4 ;Latin Small Letter U
-0x0076 0xA5 ;Latin Small Letter V
-0x0077 0xA6 ;Latin Small Letter W
-0x0078 0xA7 ;Latin Small Letter X
-0x0079 0xA8 ;Latin Small Letter Y
-0x007A 0xA9 ;Latin Small Letter Z
-0x007B 0xC0 ;Left Curly Bracket
-0x007C 0x4F ;Vertical Line
-0x007D 0xD0 ;Right Curly Bracket
-0x007E 0xA1 ;Tilde
-0x007F 0x07 ;Delete
-0x0080 0x20 ;Undefined
-0x0081 0x21 ;Undefined
-0x0082 0x22 ;Break Permitted Here
-0x0083 0x23 ;No Break Here
-0x0084 0x24 ;Undefined
-0x0085 0x15 ;Next Line (NEL)
-0x0086 0x06 ;Start Of Selected Area
-0x0087 0x17 ;End Of Selected Area
-0x0088 0x28 ;Character Tabulation Set
-0x0089 0x29 ;Character Tabulation With Justification
-0x008A 0x2A ;Line Tabulation Set
-0x008B 0x2B ;Partial Line Forward
-0x008C 0x2C ;Partial Line Backward
-0x008D 0x09 ;Reverse Line Feed
-0x008E 0x0A ;Single Shift Two
-0x008F 0x1B ;Single Shift Three
-0x0090 0x30 ;Device Control String
-0x0091 0x31 ;Private Use One
-0x0092 0x1A ;Private Use Two
-0x0093 0x33 ;Set Transmit State
-0x0094 0x34 ;Cancel Character
-0x0095 0x35 ;Message Waiting
-0x0096 0x36 ;Start Of Guarded Area
-0x0097 0x08 ;End Of Guarded Area
-0x0098 0x38 ;Start Of String
-0x0099 0x39 ;Undefined
-0x009A 0x3A ;Single Character Introducer
-0x009B 0x3B ;Control Sequence Introducer
-0x009C 0x04 ;String Terminator
-0x009D 0x14 ;Operating System Command
-0x009E 0x3E ;Privacy Message
-0x009F 0xFF ;Application Program Command
-0x00A0 0x41 ;No-Break Space
-0x00A1 0xAA ;Inverted Exclamation Mark
-0x00A2 0x4A ;Cent Sign
-0x00A3 0xB1 ;Pound Sign
-0x00A4 0x9F ;Currency Sign
-0x00A5 0xB2 ;Yen Sign
-0x00A6 0x6A ;Broken Bar
-0x00A7 0xB5 ;Section Sign
-0x00A8 0xBD ;Diaeresis
-0x00A9 0xB4 ;Copyright Sign
-0x00AA 0x9A ;Feminine Ordinal Indicator
-0x00AB 0x8A ;Left-Pointing Double Angle Quotation Mark
-0x00AC 0x5F ;Not Sign
-0x00AD 0xCA ;Soft Hyphen
-0x00AE 0xAF ;Registered Sign
-0x00AF 0xBC ;Macron
-0x00B0 0x90 ;Degree Sign
-0x00B1 0x8F ;Plus-Minus Sign
-0x00B2 0xEA ;Superscript Two
-0x00B3 0xFA ;Superscript Three
-0x00B4 0xBE ;Acute Accent
-0x00B5 0xA0 ;Micro Sign
-0x00B6 0xB6 ;Pilcrow Sign
-0x00B7 0xB3 ;Middle Dot
-0x00B8 0x9D ;Cedilla
-0x00B9 0xDA ;Superscript One
-0x00BA 0x9B ;Masculine Ordinal Indicator
-0x00BB 0x8B ;Right-Pointing Double Angle Quotation Mark
-0x00BC 0xB7 ;Vulgar Fraction One Quarter
-0x00BD 0xB8 ;Vulgar Fraction One Half
-0x00BE 0xB9 ;Vulgar Fraction Three Quarters
-0x00BF 0xAB ;Inverted Question Mark
-0x00C0 0x64 ;Latin Capital Letter A With Grave
-0x00C1 0x65 ;Latin Capital Letter A With Acute
-0x00C2 0x62 ;Latin Capital Letter A With Circumflex
-0x00C3 0x66 ;Latin Capital Letter A With Tilde
-0x00C4 0x63 ;Latin Capital Letter A With Diaeresis
-0x00C5 0x67 ;Latin Capital Letter A With Ring Above
-0x00C6 0x9E ;Latin Capital Letter Ae
-0x00C7 0x68 ;Latin Capital Letter C With Cedilla
-0x00C8 0x74 ;Latin Capital Letter E With Grave
-0x00C9 0x71 ;Latin Capital Letter E With Acute
-0x00CA 0x72 ;Latin Capital Letter E With Circumflex
-0x00CB 0x73 ;Latin Capital Letter E With Diaeresis
-0x00CC 0x78 ;Latin Capital Letter I With Grave
-0x00CD 0x75 ;Latin Capital Letter I With Acute
-0x00CE 0x76 ;Latin Capital Letter I With Circumflex
-0x00CF 0x77 ;Latin Capital Letter I With Diaeresis
-0x00D0 0xAC ;Latin Capital Letter Eth
-0x00D1 0x69 ;Latin Capital Letter N With Tilde
-0x00D2 0xED ;Latin Capital Letter O With Grave
-0x00D3 0xEE ;Latin Capital Letter O With Acute
-0x00D4 0xEB ;Latin Capital Letter O With Circumflex
-0x00D5 0xEF ;Latin Capital Letter O With Tilde
-0x00D6 0xEC ;Latin Capital Letter O With Diaeresis
-0x00D7 0xBF ;Multiplication Sign
-0x00D8 0x80 ;Latin Capital Letter O With Stroke
-0x00D9 0xFD ;Latin Capital Letter U With Grave
-0x00DA 0xFE ;Latin Capital Letter U With Acute
-0x00DB 0xFB ;Latin Capital Letter U With Circumflex
-0x00DC 0xFC ;Latin Capital Letter U With Diaeresis
-0x00DD 0xAD ;Latin Capital Letter Y With Acute
-0x00DE 0xAE ;Latin Capital Letter Thorn
-0x00DF 0x59 ;Latin Small Letter Sharp S
-0x00E0 0x44 ;Latin Small Letter A With Grave
-0x00E1 0x45 ;Latin Small Letter A With Acute
-0x00E2 0x42 ;Latin Small Letter A With Circumflex
-0x00E3 0x46 ;Latin Small Letter A With Tilde
-0x00E4 0x43 ;Latin Small Letter A With Diaeresis
-0x00E5 0x47 ;Latin Small Letter A With Ring Above
-0x00E6 0x9C ;Latin Small Letter Ae
-0x00E7 0x48 ;Latin Small Letter C With Cedilla
-0x00E8 0x54 ;Latin Small Letter E With Grave
-0x00E9 0x51 ;Latin Small Letter E With Acute
-0x00EA 0x52 ;Latin Small Letter E With Circumflex
-0x00EB 0x53 ;Latin Small Letter E With Diaeresis
-0x00EC 0x58 ;Latin Small Letter I With Grave
-0x00ED 0x55 ;Latin Small Letter I With Acute
-0x00EE 0x56 ;Latin Small Letter I With Circumflex
-0x00EF 0x57 ;Latin Small Letter I With Diaeresis
-0x00F0 0x8C ;Latin Small Letter Eth
-0x00F1 0x49 ;Latin Small Letter N With Tilde
-0x00F2 0xCD ;Latin Small Letter O With Grave
-0x00F3 0xCE ;Latin Small Letter O With Acute
-0x00F4 0xCB ;Latin Small Letter O With Circumflex
-0x00F5 0xCF ;Latin Small Letter O With Tilde
-0x00F6 0xCC ;Latin Small Letter O With Diaeresis
-0x00F7 0xE1 ;Division Sign
-0x00F8 0x70 ;Latin Small Letter O With Stroke
-0x00F9 0xDD ;Latin Small Letter U With Grave
-0x00FA 0xDE ;Latin Small Letter U With Acute
-0x00FB 0xDB ;Latin Small Letter U With Circumflex
-0x00FC 0xDC ;Latin Small Letter U With Diaeresis
-0x00FD 0x8D ;Latin Small Letter Y With Acute
-0x00FE 0x8E ;Latin Small Letter Thorn
-0x00FF 0xDF ;Latin Small Letter Y With Diaeresis
-0x0178 0xE8 ;Latin Capital Letter Y With Diaeresis
-0x203E 0xBC ;Overline
-0xFF01 0x5A ;Fullwidth Exclamation Mark
-0xFF02 0x7F ;Fullwidth Quotation Mark
-0xFF03 0x7B ;Fullwidth Number Sign
-0xFF04 0x5B ;Fullwidth Dollar Sign
-0xFF05 0x6C ;Fullwidth Percent Sign
-0xFF06 0x50 ;Fullwidth Ampersand
-0xFF07 0x7D ;Fullwidth Apostrophe
-0xFF08 0x4D ;Fullwidth Left Parenthesis
-0xFF09 0x5D ;Fullwidth Right Parenthesis
-0xFF0A 0x5C ;Fullwidth Asterisk
-0xFF0B 0x4E ;Fullwidth Plus Sign
-0xFF0C 0x6B ;Fullwidth Comma
-0xFF0D 0x60 ;Fullwidth Hyphen-Minus
-0xFF0E 0x4B ;Fullwidth Full Stop
-0xFF0F 0x61 ;Fullwidth Solidus
-0xFF10 0xF0 ;Fullwidth Digit Zero
-0xFF11 0xF1 ;Fullwidth Digit One
-0xFF12 0xF2 ;Fullwidth Digit Two
-0xFF13 0xF3 ;Fullwidth Digit Three
-0xFF14 0xF4 ;Fullwidth Digit Four
-0xFF15 0xF5 ;Fullwidth Digit Five
-0xFF16 0xF6 ;Fullwidth Digit Six
-0xFF17 0xF7 ;Fullwidth Digit Seven
-0xFF18 0xF8 ;Fullwidth Digit Eight
-0xFF19 0xF9 ;Fullwidth Digit Nine
-0xFF1A 0x7A ;Fullwidth Colon
-0xFF1B 0x5E ;Fullwidth Semicolon
-0xFF1C 0x4C ;Fullwidth Less-Than Sign
-0xFF1D 0x7E ;Fullwidth Equals Sign
-0xFF1E 0x6E ;Fullwidth Greater-Than Sign
-0xFF20 0x7C ;Fullwidth Commercial At
-0xFF21 0xC1 ;Fullwidth Latin Capital Letter A
-0xFF22 0xC2 ;Fullwidth Latin Capital Letter B
-0xFF23 0xC3 ;Fullwidth Latin Capital Letter C
-0xFF24 0xC4 ;Fullwidth Latin Capital Letter D
-0xFF25 0xC5 ;Fullwidth Latin Capital Letter E
-0xFF26 0xC6 ;Fullwidth Latin Capital Letter F
-0xFF27 0xC7 ;Fullwidth Latin Capital Letter G
-0xFF28 0xC8 ;Fullwidth Latin Capital Letter H
-0xFF29 0xC9 ;Fullwidth Latin Capital Letter I
-0xFF2A 0xD1 ;Fullwidth Latin Capital Letter J
-0xFF2B 0xD2 ;Fullwidth Latin Capital Letter K
-0xFF2C 0xD3 ;Fullwidth Latin Capital Letter L
-0xFF2D 0xD4 ;Fullwidth Latin Capital Letter M
-0xFF2E 0xD5 ;Fullwidth Latin Capital Letter N
-0xFF2F 0xD6 ;Fullwidth Latin Capital Letter O
-0xFF30 0xD7 ;Fullwidth Latin Capital Letter P
-0xFF31 0xD8 ;Fullwidth Latin Capital Letter Q
-0xFF32 0xD9 ;Fullwidth Latin Capital Letter R
-0xFF33 0xE2 ;Fullwidth Latin Capital Letter S
-0xFF34 0xE3 ;Fullwidth Latin Capital Letter T
-0xFF35 0xE4 ;Fullwidth Latin Capital Letter U
-0xFF36 0xE5 ;Fullwidth Latin Capital Letter V
-0xFF37 0xE6 ;Fullwidth Latin Capital Letter W
-0xFF38 0xE7 ;Fullwidth Latin Capital Letter X
-0xFF39 0xE8 ;Fullwidth Latin Capital Letter Y
-0xFF3A 0xE9 ;Fullwidth Latin Capital Letter Z
-0xFF3B 0xBA ;Fullwidth Left Square Bracket
-0xFF3C 0xE0 ;Fullwidth Reverse Solidus
-0xFF3D 0xBB ;Fullwidth Right Square Bracket
-0xFF3E 0xB0 ;Fullwidth Circumflex Accent
-0xFF3F 0x6D ;Fullwidth Low Line
-0xFF40 0x79 ;Fullwidth Grave Accent
-0xFF41 0x81 ;Fullwidth Latin Small Letter A
-0xFF42 0x82 ;Fullwidth Latin Small Letter B
-0xFF43 0x83 ;Fullwidth Latin Small Letter C
-0xFF44 0x84 ;Fullwidth Latin Small Letter D
-0xFF45 0x85 ;Fullwidth Latin Small Letter E
-0xFF46 0x86 ;Fullwidth Latin Small Letter F
-0xFF47 0x87 ;Fullwidth Latin Small Letter G
-0xFF48 0x88 ;Fullwidth Latin Small Letter H
-0xFF49 0x89 ;Fullwidth Latin Small Letter I
-0xFF4A 0x91 ;Fullwidth Latin Small Letter J
-0xFF4B 0x92 ;Fullwidth Latin Small Letter K
-0xFF4C 0x93 ;Fullwidth Latin Small Letter L
-0xFF4D 0x94 ;Fullwidth Latin Small Letter M
-0xFF4E 0x95 ;Fullwidth Latin Small Letter N
-0xFF4F 0x96 ;Fullwidth Latin Small Letter O
-0xFF50 0x97 ;Fullwidth Latin Small Letter P
-0xFF51 0x98 ;Fullwidth Latin Small Letter Q
-0xFF52 0x99 ;Fullwidth Latin Small Letter R
-0xFF53 0xA2 ;Fullwidth Latin Small Letter S
-0xFF54 0xA3 ;Fullwidth Latin Small Letter T
-0xFF55 0xA4 ;Fullwidth Latin Small Letter U
-0xFF56 0xA5 ;Fullwidth Latin Small Letter V
-0xFF57 0xA6 ;Fullwidth Latin Small Letter W
-0xFF58 0xA7 ;Fullwidth Latin Small Letter X
-0xFF59 0xA8 ;Fullwidth Latin Small Letter Y
-0xFF5A 0xA9 ;Fullwidth Latin Small Letter Z
-0xFF5B 0xC0 ;Fullwidth Left Curly Bracket
-0xFF5C 0x4F ;Fullwidth Vertical Line
-0xFF5D 0xD0 ;Fullwidth Right Curly Bracket
-0xFF5E 0xA1 ;Fullwidth Tilde
+WCTABLE 352
+
+0x0000 0x00 ;Null
+0x0001 0x01 ;Start Of Heading
+0x0002 0x02 ;Start Of Text
+0x0003 0x03 ;End Of Text
+0x0004 0x37 ;End Of Transmission
+0x0005 0x2d ;Enquiry
+0x0006 0x2e ;Acknowledge
+0x0007 0x2f ;Bell
+0x0008 0x16 ;Backspace
+0x0009 0x05 ;Horizontal Tabulation
+0x000a 0x25 ;Line Feed
+0x000b 0x0b ;Vertical Tabulation
+0x000c 0x0c ;Form Feed
+0x000d 0x0d ;Carriage Return
+0x000e 0x0e ;Shift Out
+0x000f 0x0f ;Shift In
+0x0010 0x10 ;Data Link Escape
+0x0011 0x11 ;Device Control One
+0x0012 0x12 ;Device Control Two
+0x0013 0x13 ;Device Control Three
+0x0014 0x3c ;Device Control Four
+0x0015 0x3d ;Negative Acknowledge
+0x0016 0x32 ;Synchronous Idle
+0x0017 0x26 ;End Of Transmission Block
+0x0018 0x18 ;Cancel
+0x0019 0x19 ;End Of Medium
+0x001a 0x3f ;Substitute
+0x001b 0x27 ;Escape
+0x001c 0x1c ;File Separator
+0x001d 0x1d ;Group Separator
+0x001e 0x1e ;Record Separator
+0x001f 0x1f ;Unit Separator
+0x0020 0x40 ;Space
+0x0021 0x5a ;Exclamation Mark
+0x0022 0x7f ;Quotation Mark
+0x0023 0x7b ;Number Sign
+0x0024 0x5b ;Dollar Sign
+0x0025 0x6c ;Percent Sign
+0x0026 0x50 ;Ampersand
+0x0027 0x7d ;Apostrophe
+0x0028 0x4d ;Left Parenthesis
+0x0029 0x5d ;Right Parenthesis
+0x002a 0x5c ;Asterisk
+0x002b 0x4e ;Plus Sign
+0x002c 0x6b ;Comma
+0x002d 0x60 ;Hyphen-Minus
+0x002e 0x4b ;Full Stop
+0x002f 0x61 ;Solidus
+0x0030 0xf0 ;Digit Zero
+0x0031 0xf1 ;Digit One
+0x0032 0xf2 ;Digit Two
+0x0033 0xf3 ;Digit Three
+0x0034 0xf4 ;Digit Four
+0x0035 0xf5 ;Digit Five
+0x0036 0xf6 ;Digit Six
+0x0037 0xf7 ;Digit Seven
+0x0038 0xf8 ;Digit Eight
+0x0039 0xf9 ;Digit Nine
+0x003a 0x7a ;Colon
+0x003b 0x5e ;Semicolon
+0x003c 0x4c ;Less-Than Sign
+0x003d 0x7e ;Equals Sign
+0x003e 0x6e ;Greater-Than Sign
+0x003f 0x6f ;Question Mark
+0x0040 0x7c ;Commercial At
+0x0041 0xc1 ;Latin Capital Letter A
+0x0042 0xc2 ;Latin Capital Letter B
+0x0043 0xc3 ;Latin Capital Letter C
+0x0044 0xc4 ;Latin Capital Letter D
+0x0045 0xc5 ;Latin Capital Letter E
+0x0046 0xc6 ;Latin Capital Letter F
+0x0047 0xc7 ;Latin Capital Letter G
+0x0048 0xc8 ;Latin Capital Letter H
+0x0049 0xc9 ;Latin Capital Letter I
+0x004a 0xd1 ;Latin Capital Letter J
+0x004b 0xd2 ;Latin Capital Letter K
+0x004c 0xd3 ;Latin Capital Letter L
+0x004d 0xd4 ;Latin Capital Letter M
+0x004e 0xd5 ;Latin Capital Letter N
+0x004f 0xd6 ;Latin Capital Letter O
+0x0050 0xd7 ;Latin Capital Letter P
+0x0051 0xd8 ;Latin Capital Letter Q
+0x0052 0xd9 ;Latin Capital Letter R
+0x0053 0xe2 ;Latin Capital Letter S
+0x0054 0xe3 ;Latin Capital Letter T
+0x0055 0xe4 ;Latin Capital Letter U
+0x0056 0xe5 ;Latin Capital Letter V
+0x0057 0xe6 ;Latin Capital Letter W
+0x0058 0xe7 ;Latin Capital Letter X
+0x0059 0xe8 ;Latin Capital Letter Y
+0x005a 0xe9 ;Latin Capital Letter Z
+0x005b 0xba ;Left Square Bracket
+0x005c 0xe0 ;Reverse Solidus
+0x005d 0xbb ;Right Square Bracket
+0x005e 0xb0 ;Circumflex Accent
+0x005f 0x6d ;Low Line
+0x0060 0x79 ;Grave Accent
+0x0061 0x81 ;Latin Small Letter A
+0x0062 0x82 ;Latin Small Letter B
+0x0063 0x83 ;Latin Small Letter C
+0x0064 0x84 ;Latin Small Letter D
+0x0065 0x85 ;Latin Small Letter E
+0x0066 0x86 ;Latin Small Letter F
+0x0067 0x87 ;Latin Small Letter G
+0x0068 0x88 ;Latin Small Letter H
+0x0069 0x89 ;Latin Small Letter I
+0x006a 0x91 ;Latin Small Letter J
+0x006b 0x92 ;Latin Small Letter K
+0x006c 0x93 ;Latin Small Letter L
+0x006d 0x94 ;Latin Small Letter M
+0x006e 0x95 ;Latin Small Letter N
+0x006f 0x96 ;Latin Small Letter O
+0x0070 0x97 ;Latin Small Letter P
+0x0071 0x98 ;Latin Small Letter Q
+0x0072 0x99 ;Latin Small Letter R
+0x0073 0xa2 ;Latin Small Letter S
+0x0074 0xa3 ;Latin Small Letter T
+0x0075 0xa4 ;Latin Small Letter U
+0x0076 0xa5 ;Latin Small Letter V
+0x0077 0xa6 ;Latin Small Letter W
+0x0078 0xa7 ;Latin Small Letter X
+0x0079 0xa8 ;Latin Small Letter Y
+0x007a 0xa9 ;Latin Small Letter Z
+0x007b 0xc0 ;Left Curly Bracket
+0x007c 0x4f ;Vertical Line
+0x007d 0xd0 ;Right Curly Bracket
+0x007e 0xa1 ;Tilde
+0x007f 0x07 ;Delete
+0x0080 0x20 ;Control
+0x0081 0x21 ;Control
+0x0082 0x22 ;Control
+0x0083 0x23 ;Control
+0x0084 0x24 ;Control
+0x0085 0x15 ;Control
+0x0086 0x06 ;Control
+0x0087 0x17 ;Control
+0x0088 0x28 ;Control
+0x0089 0x29 ;Control
+0x008a 0x2a ;Control
+0x008b 0x2b ;Control
+0x008c 0x2c ;Control
+0x008d 0x09 ;Control
+0x008e 0x0a ;Control
+0x008f 0x1b ;Control
+0x0090 0x30 ;Control
+0x0091 0x31 ;Control
+0x0092 0x1a ;Control
+0x0093 0x33 ;Control
+0x0094 0x34 ;Control
+0x0095 0x35 ;Control
+0x0096 0x36 ;Control
+0x0097 0x08 ;Control
+0x0098 0x38 ;Control
+0x0099 0x39 ;Control
+0x009a 0x3a ;Control
+0x009b 0x3b ;Control
+0x009c 0x04 ;Control
+0x009d 0x14 ;Control
+0x009e 0x3e ;Control
+0x009f 0xff ;Control
+0x00a0 0x41 ;No-Break Space
+0x00a1 0xaa ;Inverted Exclamation Mark
+0x00a2 0x4a ;Cent Sign
+0x00a3 0xb1 ;Pound Sign
+0x00a4 0x9f ;Currency Sign
+0x00a5 0xb2 ;Yen Sign
+0x00a6 0x6a ;Broken Bar
+0x00a7 0xb5 ;Section Sign
+0x00a8 0xbd ;Diaeresis
+0x00a9 0xb4 ;Copyright Sign
+0x00aa 0x9a ;Feminine Ordinal Indicator
+0x00ab 0x8a ;Left-Pointing Double Angle Quotation Mark
+0x00ac 0x5f ;Not Sign
+0x00ad 0xca ;Soft Hyphen
+0x00ae 0xaf ;Registered Sign
+0x00af 0xbc ;Macron
+0x00b0 0x90 ;Degree Sign
+0x00b1 0x8f ;Plus-Minus Sign
+0x00b2 0xea ;Superscript Two
+0x00b3 0xfa ;Superscript Three
+0x00b4 0xbe ;Acute Accent
+0x00b5 0xa0 ;Micro Sign
+0x00b6 0xb6 ;Pilcrow Sign
+0x00b7 0xb3 ;Middle Dot
+0x00b8 0x9d ;Cedilla
+0x00b9 0xda ;Superscript One
+0x00ba 0x9b ;Masculine Ordinal Indicator
+0x00bb 0x8b ;Right-Pointing Double Angle Quotation Mark
+0x00bc 0xb7 ;Vulgar Fraction One Quarter
+0x00bd 0xb8 ;Vulgar Fraction One Half
+0x00be 0xb9 ;Vulgar Fraction Three Quarters
+0x00bf 0xab ;Inverted Question Mark
+0x00c0 0x64 ;Latin Capital Letter A With Grave
+0x00c1 0x65 ;Latin Capital Letter A With Acute
+0x00c2 0x62 ;Latin Capital Letter A With Circumflex
+0x00c3 0x66 ;Latin Capital Letter A With Tilde
+0x00c4 0x63 ;Latin Capital Letter A With Diaeresis
+0x00c5 0x67 ;Latin Capital Letter A With Ring Above
+0x00c6 0x9e ;Latin Capital Ligature Ae
+0x00c7 0x68 ;Latin Capital Letter C With Cedilla
+0x00c8 0x74 ;Latin Capital Letter E With Grave
+0x00c9 0x71 ;Latin Capital Letter E With Acute
+0x00ca 0x72 ;Latin Capital Letter E With Circumflex
+0x00cb 0x73 ;Latin Capital Letter E With Diaeresis
+0x00cc 0x78 ;Latin Capital Letter I With Grave
+0x00cd 0x75 ;Latin Capital Letter I With Acute
+0x00ce 0x76 ;Latin Capital Letter I With Circumflex
+0x00cf 0x77 ;Latin Capital Letter I With Diaeresis
+0x00d0 0xac ;Latin Capital Letter Eth (Icelandic)
+0x00d1 0x69 ;Latin Capital Letter N With Tilde
+0x00d2 0xed ;Latin Capital Letter O With Grave
+0x00d3 0xee ;Latin Capital Letter O With Acute
+0x00d4 0xeb ;Latin Capital Letter O With Circumflex
+0x00d5 0xef ;Latin Capital Letter O With Tilde
+0x00d6 0xec ;Latin Capital Letter O With Diaeresis
+0x00d7 0xbf ;Multiplication Sign
+0x00d8 0x80 ;Latin Capital Letter O With Stroke
+0x00d9 0xfd ;Latin Capital Letter U With Grave
+0x00da 0xfe ;Latin Capital Letter U With Acute
+0x00db 0xfb ;Latin Capital Letter U With Circumflex
+0x00dc 0xfc ;Latin Capital Letter U With Diaeresis
+0x00dd 0xad ;Latin Capital Letter Y With Acute
+0x00de 0xae ;Latin Capital Letter Thorn (Icelandic)
+0x00df 0x59 ;Latin Small Letter Sharp S (German)
+0x00e0 0x44 ;Latin Small Letter A With Grave
+0x00e1 0x45 ;Latin Small Letter A With Acute
+0x00e2 0x42 ;Latin Small Letter A With Circumflex
+0x00e3 0x46 ;Latin Small Letter A With Tilde
+0x00e4 0x43 ;Latin Small Letter A With Diaeresis
+0x00e5 0x47 ;Latin Small Letter A With Ring Above
+0x00e6 0x9c ;Latin Small Ligature Ae
+0x00e7 0x48 ;Latin Small Letter C With Cedilla
+0x00e8 0x54 ;Latin Small Letter E With Grave
+0x00e9 0x51 ;Latin Small Letter E With Acute
+0x00ea 0x52 ;Latin Small Letter E With Circumflex
+0x00eb 0x53 ;Latin Small Letter E With Diaeresis
+0x00ec 0x58 ;Latin Small Letter I With Grave
+0x00ed 0x55 ;Latin Small Letter I With Acute
+0x00ee 0x56 ;Latin Small Letter I With Circumflex
+0x00ef 0x57 ;Latin Small Letter I With Diaeresis
+0x00f0 0x8c ;Latin Small Letter Eth (Icelandic)
+0x00f1 0x49 ;Latin Small Letter N With Tilde
+0x00f2 0xcd ;Latin Small Letter O With Grave
+0x00f3 0xce ;Latin Small Letter O With Acute
+0x00f4 0xcb ;Latin Small Letter O With Circumflex
+0x00f5 0xcf ;Latin Small Letter O With Tilde
+0x00f6 0xcc ;Latin Small Letter O With Diaeresis
+0x00f7 0xe1 ;Division Sign
+0x00f8 0x70 ;Latin Small Letter O With Stroke
+0x00f9 0xdd ;Latin Small Letter U With Grave
+0x00fa 0xde ;Latin Small Letter U With Acute
+0x00fb 0xdb ;Latin Small Letter U With Circumflex
+0x00fc 0xdc ;Latin Small Letter U With Diaeresis
+0x00fd 0x8d ;Latin Small Letter Y With Acute
+0x00fe 0x8e ;Latin Small Letter Thorn (Icelandic)
+0x00ff 0xdf ;Latin Small Letter Y With Diaeresis
+0x0178 0xe8 ;Y Diaeresis -> Y (#25995)
+0x203e 0xbc ;Overline
+0xff01 0x5a ;Fullwidth Exclamation Mark
+0xff02 0x7f ;Fullwidth Quotation Mark
+0xff03 0x7b ;Fullwidth Number Sign
+0xff04 0x5b ;Fullwidth Dollar Sign
+0xff05 0x6c ;Fullwidth Percent Sign
+0xff06 0x50 ;Fullwidth Ampersand
+0xff07 0x7d ;Fullwidth Apostrophe
+0xff08 0x4d ;Fullwidth Left Parenthesis
+0xff09 0x5d ;Fullwidth Right Parenthesis
+0xff0a 0x5c ;Fullwidth Asterisk
+0xff0b 0x4e ;Fullwidth Plus Sign
+0xff0c 0x6b ;Fullwidth Comma
+0xff0d 0x60 ;Fullwidth Hyphen-Minus
+0xff0e 0x4b ;Fullwidth Full Stop
+0xff0f 0x61 ;Fullwidth Solidus
+0xff10 0xf0 ;Fullwidth Digit Zero
+0xff11 0xf1 ;Fullwidth Digit One
+0xff12 0xf2 ;Fullwidth Digit Two
+0xff13 0xf3 ;Fullwidth Digit Three
+0xff14 0xf4 ;Fullwidth Digit Four
+0xff15 0xf5 ;Fullwidth Digit Five
+0xff16 0xf6 ;Fullwidth Digit Six
+0xff17 0xf7 ;Fullwidth Digit Seven
+0xff18 0xf8 ;Fullwidth Digit Eight
+0xff19 0xf9 ;Fullwidth Digit Nine
+0xff1a 0x7a ;Fullwidth Colon
+0xff1b 0x5e ;Fullwidth Semicolon
+0xff1c 0x4c ;Fullwidth Less-Than Sign
+0xff1d 0x7e ;Fullwidth Equals Sign
+0xff1e 0x6e ;Fullwidth Greater-Than Sign
+0xff1f 0x6f ;Fullwidth Question Mark
+0xff20 0x7c ;Fullwidth Commercial At
+0xff21 0xc1 ;Fullwidth Latin Capital Letter A
+0xff22 0xc2 ;Fullwidth Latin Capital Letter B
+0xff23 0xc3 ;Fullwidth Latin Capital Letter C
+0xff24 0xc4 ;Fullwidth Latin Capital Letter D
+0xff25 0xc5 ;Fullwidth Latin Capital Letter E
+0xff26 0xc6 ;Fullwidth Latin Capital Letter F
+0xff27 0xc7 ;Fullwidth Latin Capital Letter G
+0xff28 0xc8 ;Fullwidth Latin Capital Letter H
+0xff29 0xc9 ;Fullwidth Latin Capital Letter I
+0xff2a 0xd1 ;Fullwidth Latin Capital Letter J
+0xff2b 0xd2 ;Fullwidth Latin Capital Letter K
+0xff2c 0xd3 ;Fullwidth Latin Capital Letter L
+0xff2d 0xd4 ;Fullwidth Latin Capital Letter M
+0xff2e 0xd5 ;Fullwidth Latin Capital Letter N
+0xff2f 0xd6 ;Fullwidth Latin Capital Letter O
+0xff30 0xd7 ;Fullwidth Latin Capital Letter P
+0xff31 0xd8 ;Fullwidth Latin Capital Letter Q
+0xff32 0xd9 ;Fullwidth Latin Capital Letter R
+0xff33 0xe2 ;Fullwidth Latin Capital Letter S
+0xff34 0xe3 ;Fullwidth Latin Capital Letter T
+0xff35 0xe4 ;Fullwidth Latin Capital Letter U
+0xff36 0xe5 ;Fullwidth Latin Capital Letter V
+0xff37 0xe6 ;Fullwidth Latin Capital Letter W
+0xff38 0xe7 ;Fullwidth Latin Capital Letter X
+0xff39 0xe8 ;Fullwidth Latin Capital Letter Y
+0xff3a 0xe9 ;Fullwidth Latin Capital Letter Z
+0xff3b 0xba ;Fullwidth Left Square Bracket
+0xff3c 0xe0 ;Fullwidth Reverse Solidus
+0xff3d 0xbb ;Fullwidth Right Square Bracket
+0xff3e 0xb0 ;Fullwidth Circumflex Accent
+0xff3f 0x6d ;Fullwidth Low Line
+0xff40 0x79 ;Fullwidth Grave Accent
+0xff41 0x81 ;Fullwidth Latin Small Letter A
+0xff42 0x82 ;Fullwidth Latin Small Letter B
+0xff43 0x83 ;Fullwidth Latin Small Letter C
+0xff44 0x84 ;Fullwidth Latin Small Letter D
+0xff45 0x85 ;Fullwidth Latin Small Letter E
+0xff46 0x86 ;Fullwidth Latin Small Letter F
+0xff47 0x87 ;Fullwidth Latin Small Letter G
+0xff48 0x88 ;Fullwidth Latin Small Letter H
+0xff49 0x89 ;Fullwidth Latin Small Letter I
+0xff4a 0x91 ;Fullwidth Latin Small Letter J
+0xff4b 0x92 ;Fullwidth Latin Small Letter K
+0xff4c 0x93 ;Fullwidth Latin Small Letter L
+0xff4d 0x94 ;Fullwidth Latin Small Letter M
+0xff4e 0x95 ;Fullwidth Latin Small Letter N
+0xff4f 0x96 ;Fullwidth Latin Small Letter O
+0xff50 0x97 ;Fullwidth Latin Small Letter P
+0xff51 0x98 ;Fullwidth Latin Small Letter Q
+0xff52 0x99 ;Fullwidth Latin Small Letter R
+0xff53 0xa2 ;Fullwidth Latin Small Letter S
+0xff54 0xa3 ;Fullwidth Latin Small Letter T
+0xff55 0xa4 ;Fullwidth Latin Small Letter U
+0xff56 0xa5 ;Fullwidth Latin Small Letter V
+0xff57 0xa6 ;Fullwidth Latin Small Letter W
+0xff58 0xa7 ;Fullwidth Latin Small Letter X
+0xff59 0xa8 ;Fullwidth Latin Small Letter Y
+0xff5a 0xa9 ;Fullwidth Latin Small Letter Z
+0xff5b 0xc0 ;Fullwidth Left Curly Bracket
+0xff5c 0x4f ;Fullwidth Vertical Line
+0xff5d 0xd0 ;Fullwidth Right Curly Bracket
+0xff5e 0xa1 ;Fullwidth Tilde
ENDCODEPAGE
+
\ No newline at end of file
diff --git a/media/nls/src/c_10000.txt b/media/nls/src/c_10000.txt
index b3e122f970f..057b65855c6 100644
--- a/media/nls/src/c_10000.txt
+++ b/media/nls/src/c_10000.txt
@@ -1,521 +1,524 @@
-CODEPAGE 10000
+CODEPAGE 10000 ;Roman - MAC
-CPINFO 1 0x3F 0x003F
+CPINFO 1 0x3f 0x003f ;Single Byte CP, Default Char = Question Mark
-MBTABLE 255
+MBTABLE 256
-0x00 0x0000 ;Null
-0x01 0x0001 ;Start Of Heading
-0x02 0x0002 ;Start Of Text
-0x03 0x0003 ;End Of Text
-0x04 0x0004 ;End Of Transmission
-0x05 0x0005 ;Enquiry
-0x06 0x0006 ;Acknowledge
-0x07 0x0007 ;Bell
-0x08 0x0008 ;Backspace
-0x09 0x0009 ;Character Tabulation
-0x0A 0x000A ;Line Feed (LF)
-0x0B 0x000B ;Line Tabulation
-0x0C 0x000C ;Form Feed (FF)
-0x0D 0x000D ;Carriage Return (CR)
-0x0E 0x000E ;Shift Out
-0x0F 0x000F ;Shift In
-0x10 0x0010 ;Data Link Escape
-0x11 0x0011 ;Device Control One
-0x12 0x0012 ;Device Control Two
-0x13 0x0013 ;Device Control Three
-0x14 0x0014 ;Device Control Four
-0x15 0x0015 ;Negative Acknowledge
-0x16 0x0016 ;Synchronous Idle
-0x17 0x0017 ;End Of Transmission Block
-0x18 0x0018 ;Cancel
-0x19 0x0019 ;End Of Medium
-0x1A 0x001A ;Substitute
-0x1B 0x001B ;Escape
-0x1C 0x001C ;Information Separator Four
-0x1D 0x001D ;Information Separator Three
-0x1E 0x001E ;Information Separator Two
-0x1F 0x001F ;Information Separator One
-0x20 0x0020 ;Space
-0x21 0x0021 ;Exclamation Mark
-0x22 0x0022 ;Quotation Mark
-0x23 0x0023 ;Number Sign
-0x24 0x0024 ;Dollar Sign
-0x25 0x0025 ;Percent Sign
-0x26 0x0026 ;Ampersand
-0x27 0x0027 ;Apostrophe
-0x28 0x0028 ;Left Parenthesis
-0x29 0x0029 ;Right Parenthesis
-0x2A 0x002A ;Asterisk
-0x2B 0x002B ;Plus Sign
-0x2C 0x002C ;Comma
-0x2D 0x002D ;Hyphen-Minus
-0x2E 0x002E ;Full Stop
-0x2F 0x002F ;Solidus
-0x30 0x0030 ;Digit Zero
-0x31 0x0031 ;Digit One
-0x32 0x0032 ;Digit Two
-0x33 0x0033 ;Digit Three
-0x34 0x0034 ;Digit Four
-0x35 0x0035 ;Digit Five
-0x36 0x0036 ;Digit Six
-0x37 0x0037 ;Digit Seven
-0x38 0x0038 ;Digit Eight
-0x39 0x0039 ;Digit Nine
-0x3A 0x003A ;Colon
-0x3B 0x003B ;Semicolon
-0x3C 0x003C ;Less-Than Sign
-0x3D 0x003D ;Equals Sign
-0x3E 0x003E ;Greater-Than Sign
-0x40 0x0040 ;Commercial At
-0x41 0x0041 ;Latin Capital Letter A
-0x42 0x0042 ;Latin Capital Letter B
-0x43 0x0043 ;Latin Capital Letter C
-0x44 0x0044 ;Latin Capital Letter D
-0x45 0x0045 ;Latin Capital Letter E
-0x46 0x0046 ;Latin Capital Letter F
-0x47 0x0047 ;Latin Capital Letter G
-0x48 0x0048 ;Latin Capital Letter H
-0x49 0x0049 ;Latin Capital Letter I
-0x4A 0x004A ;Latin Capital Letter J
-0x4B 0x004B ;Latin Capital Letter K
-0x4C 0x004C ;Latin Capital Letter L
-0x4D 0x004D ;Latin Capital Letter M
-0x4E 0x004E ;Latin Capital Letter N
-0x4F 0x004F ;Latin Capital Letter O
-0x50 0x0050 ;Latin Capital Letter P
-0x51 0x0051 ;Latin Capital Letter Q
-0x52 0x0052 ;Latin Capital Letter R
-0x53 0x0053 ;Latin Capital Letter S
-0x54 0x0054 ;Latin Capital Letter T
-0x55 0x0055 ;Latin Capital Letter U
-0x56 0x0056 ;Latin Capital Letter V
-0x57 0x0057 ;Latin Capital Letter W
-0x58 0x0058 ;Latin Capital Letter X
-0x59 0x0059 ;Latin Capital Letter Y
-0x5A 0x005A ;Latin Capital Letter Z
-0x5B 0x005B ;Left Square Bracket
-0x5C 0x005C ;Reverse Solidus
-0x5D 0x005D ;Right Square Bracket
-0x5E 0x005E ;Circumflex Accent
-0x5F 0x005F ;Low Line
-0x60 0x0060 ;Grave Accent
-0x61 0x0061 ;Latin Small Letter A
-0x62 0x0062 ;Latin Small Letter B
-0x63 0x0063 ;Latin Small Letter C
-0x64 0x0064 ;Latin Small Letter D
-0x65 0x0065 ;Latin Small Letter E
-0x66 0x0066 ;Latin Small Letter F
-0x67 0x0067 ;Latin Small Letter G
-0x68 0x0068 ;Latin Small Letter H
-0x69 0x0069 ;Latin Small Letter I
-0x6A 0x006A ;Latin Small Letter J
-0x6B 0x006B ;Latin Small Letter K
-0x6C 0x006C ;Latin Small Letter L
-0x6D 0x006D ;Latin Small Letter M
-0x6E 0x006E ;Latin Small Letter N
-0x6F 0x006F ;Latin Small Letter O
-0x70 0x0070 ;Latin Small Letter P
-0x71 0x0071 ;Latin Small Letter Q
-0x72 0x0072 ;Latin Small Letter R
-0x73 0x0073 ;Latin Small Letter S
-0x74 0x0074 ;Latin Small Letter T
-0x75 0x0075 ;Latin Small Letter U
-0x76 0x0076 ;Latin Small Letter V
-0x77 0x0077 ;Latin Small Letter W
-0x78 0x0078 ;Latin Small Letter X
-0x79 0x0079 ;Latin Small Letter Y
-0x7A 0x007A ;Latin Small Letter Z
-0x7B 0x007B ;Left Curly Bracket
-0x7C 0x007C ;Vertical Line
-0x7D 0x007D ;Right Curly Bracket
-0x7E 0x007E ;Tilde
-0x7F 0x007F ;Delete
-0x80 0x00C4 ;Latin Capital Letter A With Diaeresis
-0x81 0x00C5 ;Latin Capital Letter A With Ring Above
-0x82 0x00C7 ;Latin Capital Letter C With Cedilla
-0x83 0x00C9 ;Latin Capital Letter E With Acute
-0x84 0x00D1 ;Latin Capital Letter N With Tilde
-0x85 0x00D6 ;Latin Capital Letter O With Diaeresis
-0x86 0x00DC ;Latin Capital Letter U With Diaeresis
-0x87 0x00E1 ;Latin Small Letter A With Acute
-0x88 0x00E0 ;Latin Small Letter A With Grave
-0x89 0x00E2 ;Latin Small Letter A With Circumflex
-0x8A 0x00E4 ;Latin Small Letter A With Diaeresis
-0x8B 0x00E3 ;Latin Small Letter A With Tilde
-0x8C 0x00E5 ;Latin Small Letter A With Ring Above
-0x8D 0x00E7 ;Latin Small Letter C With Cedilla
-0x8E 0x00E9 ;Latin Small Letter E With Acute
-0x8F 0x00E8 ;Latin Small Letter E With Grave
-0x90 0x00EA ;Latin Small Letter E With Circumflex
-0x91 0x00EB ;Latin Small Letter E With Diaeresis
-0x92 0x00ED ;Latin Small Letter I With Acute
-0x93 0x00EC ;Latin Small Letter I With Grave
-0x94 0x00EE ;Latin Small Letter I With Circumflex
-0x95 0x00EF ;Latin Small Letter I With Diaeresis
-0x96 0x00F1 ;Latin Small Letter N With Tilde
-0x97 0x00F3 ;Latin Small Letter O With Acute
-0x98 0x00F2 ;Latin Small Letter O With Grave
-0x99 0x00F4 ;Latin Small Letter O With Circumflex
-0x9A 0x00F6 ;Latin Small Letter O With Diaeresis
-0x9B 0x00F5 ;Latin Small Letter O With Tilde
-0x9C 0x00FA ;Latin Small Letter U With Acute
-0x9D 0x00F9 ;Latin Small Letter U With Grave
-0x9E 0x00FB ;Latin Small Letter U With Circumflex
-0x9F 0x00FC ;Latin Small Letter U With Diaeresis
-0xA0 0x2020 ;Dagger
-0xA1 0x00B0 ;Degree Sign
-0xA2 0x00A2 ;Cent Sign
-0xA3 0x00A3 ;Pound Sign
-0xA4 0x00A7 ;Section Sign
-0xA5 0x2022 ;Bullet
-0xA6 0x00B6 ;Pilcrow Sign
-0xA7 0x00DF ;Latin Small Letter Sharp S
-0xA8 0x00AE ;Registered Sign
-0xA9 0x00A9 ;Copyright Sign
-0xAA 0x2122 ;Trade Mark Sign
-0xAB 0x00B4 ;Acute Accent
-0xAC 0x00A8 ;Diaeresis
-0xAD 0x2260 ;Not Equal To
-0xAE 0x00C6 ;Latin Capital Letter Ae
-0xAF 0x00D8 ;Latin Capital Letter O With Stroke
-0xB0 0x221E ;Infinity
-0xB1 0x00B1 ;Plus-Minus Sign
-0xB2 0x2264 ;Less-Than Or Equal To
-0xB3 0x2265 ;Greater-Than Or Equal To
-0xB4 0x00A5 ;Yen Sign
-0xB5 0x00B5 ;Micro Sign
-0xB6 0x2202 ;Partial Differential
-0xB7 0x2211 ;N-Ary Summation
-0xB8 0x220F ;N-Ary Product
-0xB9 0x03C0 ;Greek Small Letter Pi
-0xBA 0x222B ;Integral
-0xBB 0x00AA ;Feminine Ordinal Indicator
-0xBC 0x00BA ;Masculine Ordinal Indicator
-0xBD 0x2126 ;Ohm Sign
-0xBE 0x00E6 ;Latin Small Letter Ae
-0xBF 0x00F8 ;Latin Small Letter O With Stroke
-0xC0 0x00BF ;Inverted Question Mark
-0xC1 0x00A1 ;Inverted Exclamation Mark
-0xC2 0x00AC ;Not Sign
-0xC3 0x221A ;Square Root
-0xC4 0x0192 ;Latin Small Letter F With Hook
-0xC5 0x2248 ;Almost Equal To
-0xC6 0x2206 ;Increment
-0xC7 0x00AB ;Left-Pointing Double Angle Quotation Mark
-0xC8 0x00BB ;Right-Pointing Double Angle Quotation Mark
-0xC9 0x2026 ;Horizontal Ellipsis
-0xCA 0x00A0 ;No-Break Space
-0xCB 0x00C0 ;Latin Capital Letter A With Grave
-0xCC 0x00C3 ;Latin Capital Letter A With Tilde
-0xCD 0x00D5 ;Latin Capital Letter O With Tilde
-0xCE 0x0152 ;Latin Capital Ligature Oe
-0xCF 0x0153 ;Latin Small Ligature Oe
-0xD0 0x2013 ;En Dash
-0xD1 0x2014 ;Em Dash
-0xD2 0x201C ;Left Double Quotation Mark
-0xD3 0x201D ;Right Double Quotation Mark
-0xD4 0x2018 ;Left Single Quotation Mark
-0xD5 0x2019 ;Right Single Quotation Mark
-0xD6 0x00F7 ;Division Sign
-0xD7 0x25CA ;Lozenge
-0xD8 0x00FF ;Latin Small Letter Y With Diaeresis
-0xD9 0x0178 ;Latin Capital Letter Y With Diaeresis
-0xDA 0x2044 ;Fraction Slash
-0xDB 0x20AC ;Euro Sign
-0xDC 0x2039 ;Single Left-Pointing Angle Quotation Mark
-0xDD 0x203A ;Single Right-Pointing Angle Quotation Mark
-0xDE 0xFB01 ;Latin Small Ligature Fi
-0xDF 0xFB02 ;Latin Small Ligature Fl
-0xE0 0x2021 ;Double Dagger
-0xE1 0x00B7 ;Middle Dot
-0xE2 0x201A ;Single Low-9 Quotation Mark
-0xE3 0x201E ;Double Low-9 Quotation Mark
-0xE4 0x2030 ;Per Mille Sign
-0xE5 0x00C2 ;Latin Capital Letter A With Circumflex
-0xE6 0x00CA ;Latin Capital Letter E With Circumflex
-0xE7 0x00C1 ;Latin Capital Letter A With Acute
-0xE8 0x00CB ;Latin Capital Letter E With Diaeresis
-0xE9 0x00C8 ;Latin Capital Letter E With Grave
-0xEA 0x00CD ;Latin Capital Letter I With Acute
-0xEB 0x00CE ;Latin Capital Letter I With Circumflex
-0xEC 0x00CF ;Latin Capital Letter I With Diaeresis
-0xED 0x00CC ;Latin Capital Letter I With Grave
-0xEE 0x00D3 ;Latin Capital Letter O With Acute
-0xEF 0x00D4 ;Latin Capital Letter O With Circumflex
-0xF0 0xF8FF ;Private Use
-0xF1 0x00D2 ;Latin Capital Letter O With Grave
-0xF2 0x00DA ;Latin Capital Letter U With Acute
-0xF3 0x00DB ;Latin Capital Letter U With Circumflex
-0xF4 0x00D9 ;Latin Capital Letter U With Grave
-0xF5 0x0131 ;Latin Small Letter Dotless I
-0xF6 0x02C6 ;Modifier Letter Circumflex Accent
-0xF7 0x02DC ;Small Tilde
-0xF8 0x00AF ;Macron
-0xF9 0x02D8 ;Breve
-0xFA 0x02D9 ;Dot Above
-0xFB 0x02DA ;Ring Above
-0xFC 0x00B8 ;Cedilla
-0xFD 0x02DD ;Double Acute Accent
-0xFE 0x02DB ;Ogonek
-0xFF 0x02C7 ;Caron
+0x00 0x0000 ;Null
+0x01 0x0001 ;Start Of Heading
+0x02 0x0002 ;Start Of Text
+0x03 0x0003 ;End Of Text
+0x04 0x0004 ;End Of Transmission
+0x05 0x0005 ;Enquiry
+0x06 0x0006 ;Acknowledge
+0x07 0x0007 ;Bell
+0x08 0x0008 ;Backspace
+0x09 0x0009 ;Horizontal Tabulation
+0x0a 0x000a ;Line Feed
+0x0b 0x000b ;Vertical Tabulation
+0x0c 0x000c ;Form Feed
+0x0d 0x000d ;Carriage Return
+0x0e 0x000e ;Shift Out
+0x0f 0x000f ;Shift In
+0x10 0x0010 ;Data Link Escape
+0x11 0x0011 ;Device Control One
+0x12 0x0012 ;Device Control Two
+0x13 0x0013 ;Device Control Three
+0x14 0x0014 ;Device Control Four
+0x15 0x0015 ;Negative Acknowledge
+0x16 0x0016 ;Synchronous Idle
+0x17 0x0017 ;End Of Transmission Block
+0x18 0x0018 ;Cancel
+0x19 0x0019 ;End Of Medium
+0x1a 0x001a ;Substitute
+0x1b 0x001b ;Escape
+0x1c 0x001c ;File Separator
+0x1d 0x001d ;Group Separator
+0x1e 0x001e ;Record Separator
+0x1f 0x001f ;Unit Separator
+0x20 0x0020 ;Space
+0x21 0x0021 ;Exclamation Mark
+0x22 0x0022 ;Quotation Mark
+0x23 0x0023 ;Number Sign
+0x24 0x0024 ;Dollar Sign
+0x25 0x0025 ;Percent Sign
+0x26 0x0026 ;Ampersand
+0x27 0x0027 ;Apostrophe
+0x28 0x0028 ;Left Parenthesis
+0x29 0x0029 ;Right Parenthesis
+0x2a 0x002a ;Asterisk
+0x2b 0x002b ;Plus Sign
+0x2c 0x002c ;Comma
+0x2d 0x002d ;Hyphen-Minus
+0x2e 0x002e ;Full Stop
+0x2f 0x002f ;Solidus
+0x30 0x0030 ;Digit Zero
+0x31 0x0031 ;Digit One
+0x32 0x0032 ;Digit Two
+0x33 0x0033 ;Digit Three
+0x34 0x0034 ;Digit Four
+0x35 0x0035 ;Digit Five
+0x36 0x0036 ;Digit Six
+0x37 0x0037 ;Digit Seven
+0x38 0x0038 ;Digit Eight
+0x39 0x0039 ;Digit Nine
+0x3a 0x003a ;Colon
+0x3b 0x003b ;Semicolon
+0x3c 0x003c ;Less-Than Sign
+0x3d 0x003d ;Equals Sign
+0x3e 0x003e ;Greater-Than Sign
+0x3f 0x003f ;Question Mark
+0x40 0x0040 ;Commercial At
+0x41 0x0041 ;Latin Capital Letter A
+0x42 0x0042 ;Latin Capital Letter B
+0x43 0x0043 ;Latin Capital Letter C
+0x44 0x0044 ;Latin Capital Letter D
+0x45 0x0045 ;Latin Capital Letter E
+0x46 0x0046 ;Latin Capital Letter F
+0x47 0x0047 ;Latin Capital Letter G
+0x48 0x0048 ;Latin Capital Letter H
+0x49 0x0049 ;Latin Capital Letter I
+0x4a 0x004a ;Latin Capital Letter J
+0x4b 0x004b ;Latin Capital Letter K
+0x4c 0x004c ;Latin Capital Letter L
+0x4d 0x004d ;Latin Capital Letter M
+0x4e 0x004e ;Latin Capital Letter N
+0x4f 0x004f ;Latin Capital Letter O
+0x50 0x0050 ;Latin Capital Letter P
+0x51 0x0051 ;Latin Capital Letter Q
+0x52 0x0052 ;Latin Capital Letter R
+0x53 0x0053 ;Latin Capital Letter S
+0x54 0x0054 ;Latin Capital Letter T
+0x55 0x0055 ;Latin Capital Letter U
+0x56 0x0056 ;Latin Capital Letter V
+0x57 0x0057 ;Latin Capital Letter W
+0x58 0x0058 ;Latin Capital Letter X
+0x59 0x0059 ;Latin Capital Letter Y
+0x5a 0x005a ;Latin Capital Letter Z
+0x5b 0x005b ;Left Square Bracket
+0x5c 0x005c ;Reverse Solidus
+0x5d 0x005d ;Right Square Bracket
+0x5e 0x005e ;Circumflex Accent
+0x5f 0x005f ;Low Line
+0x60 0x0060 ;Grave Accent
+0x61 0x0061 ;Latin Small Letter A
+0x62 0x0062 ;Latin Small Letter B
+0x63 0x0063 ;Latin Small Letter C
+0x64 0x0064 ;Latin Small Letter D
+0x65 0x0065 ;Latin Small Letter E
+0x66 0x0066 ;Latin Small Letter F
+0x67 0x0067 ;Latin Small Letter G
+0x68 0x0068 ;Latin Small Letter H
+0x69 0x0069 ;Latin Small Letter I
+0x6a 0x006a ;Latin Small Letter J
+0x6b 0x006b ;Latin Small Letter K
+0x6c 0x006c ;Latin Small Letter L
+0x6d 0x006d ;Latin Small Letter M
+0x6e 0x006e ;Latin Small Letter N
+0x6f 0x006f ;Latin Small Letter O
+0x70 0x0070 ;Latin Small Letter P
+0x71 0x0071 ;Latin Small Letter Q
+0x72 0x0072 ;Latin Small Letter R
+0x73 0x0073 ;Latin Small Letter S
+0x74 0x0074 ;Latin Small Letter T
+0x75 0x0075 ;Latin Small Letter U
+0x76 0x0076 ;Latin Small Letter V
+0x77 0x0077 ;Latin Small Letter W
+0x78 0x0078 ;Latin Small Letter X
+0x79 0x0079 ;Latin Small Letter Y
+0x7a 0x007a ;Latin Small Letter Z
+0x7b 0x007b ;Left Curly Bracket
+0x7c 0x007c ;Vertical Line
+0x7d 0x007d ;Right Curly Bracket
+0x7e 0x007e ;Tilde
+0x7f 0x007f ;Delete
+0x80 0x00c4 ;Latin Capital Letter A With Diaeresis
+0x81 0x00c5 ;Latin Capital Letter A With Ring Above
+0x82 0x00c7 ;Latin Capital Letter C With Cedilla
+0x83 0x00c9 ;Latin Capital Letter E With Acute
+0x84 0x00d1 ;Latin Capital Letter N With Tilde
+0x85 0x00d6 ;Latin Capital Letter O With Diaeresis
+0x86 0x00dc ;Latin Capital Letter U With Diaeresis
+0x87 0x00e1 ;Latin Small Letter A With Acute
+0x88 0x00e0 ;Latin Small Letter A With Grave
+0x89 0x00e2 ;Latin Small Letter A With Circumflex
+0x8a 0x00e4 ;Latin Small Letter A With Diaeresis
+0x8b 0x00e3 ;Latin Small Letter A With Tilde
+0x8c 0x00e5 ;Latin Small Letter A With Ring Above
+0x8d 0x00e7 ;Latin Small Letter C With Cedilla
+0x8e 0x00e9 ;Latin Small Letter E With Acute
+0x8f 0x00e8 ;Latin Small Letter E With Grave
+0x90 0x00ea ;Latin Small Letter E With Circumflex
+0x91 0x00eb ;Latin Small Letter E With Diaeresis
+0x92 0x00ed ;Latin Small Letter I With Acute
+0x93 0x00ec ;Latin Small Letter I With Grave
+0x94 0x00ee ;Latin Small Letter I With Circumflex
+0x95 0x00ef ;Latin Small Letter I With Diaeresis
+0x96 0x00f1 ;Latin Small Letter N With Tilde
+0x97 0x00f3 ;Latin Small Letter O With Acute
+0x98 0x00f2 ;Latin Small Letter O With Grave
+0x99 0x00f4 ;Latin Small Letter O With Circumflex
+0x9a 0x00f6 ;Latin Small Letter O With Diaeresis
+0x9b 0x00f5 ;Latin Small Letter O With Tilde
+0x9c 0x00fa ;Latin Small Letter U With Acute
+0x9d 0x00f9 ;Latin Small Letter U With Grave
+0x9e 0x00fb ;Latin Small Letter U With Circumflex
+0x9f 0x00fc ;Latin Small Letter U With Diaeresis
+0xa0 0x2020 ;Dagger
+0xa1 0x00b0 ;Degree Sign
+0xa2 0x00a2 ;Cent Sign
+0xa3 0x00a3 ;Pound Sign
+0xa4 0x00a7 ;Section Sign
+0xa5 0x2022 ;Bullet
+0xa6 0x00b6 ;Pilcrow Sign
+0xa7 0x00df ;Latin Small Letter Sharp S
+0xa8 0x00ae ;Registered Sign
+0xa9 0x00a9 ;Copyright Sign
+0xaa 0x2122 ;Trade Mark Sign
+0xab 0x00b4 ;Acute Accent
+0xac 0x00a8 ;Diaeresis
+0xad 0x2260 ;Not Equal To
+0xae 0x00c6 ;Latin Capital Ligature Ae
+0xaf 0x00d8 ;Latin Capital Letter O With Stroke
+0xb0 0x221e ;Infinity
+0xb1 0x00b1 ;Plus-Minus Sign
+0xb2 0x2264 ;Less-Than Or Equal To
+0xb3 0x2265 ;Greater-Than Or Equal To
+0xb4 0x00a5 ;Yen Sign
+0xb5 0x00b5 ;Micro Sign
+0xb6 0x2202 ;Partial Differential
+0xb7 0x2211 ;N-Ary Summation
+0xb8 0x220f ;N-Ary Product
+0xb9 0x03c0 ;Greek Small Letter Pi
+0xba 0x222b ;Integral
+0xbb 0x00aa ;Feminine Ordinal Indicator
+0xbc 0x00ba ;Masculine Ordinal Indicator
+0xbd 0x2126 ;Ohm Sign
+0xbe 0x00e6 ;Latin Small Ligature Ae
+0xbf 0x00f8 ;Latin Small Letter O With Stroke
+0xc0 0x00bf ;Inverted Question Mark
+0xc1 0x00a1 ;Inverted Exclamation Mark
+0xc2 0x00ac ;Not Sign
+0xc3 0x221a ;Square Root
+0xc4 0x0192 ;Latin Small Letter F With Hook
+0xc5 0x2248 ;Almost Equal To
+0xc6 0x2206 ;Increment
+0xc7 0x00ab ;Left-Pointing Double Angle Quotation Mark
+0xc8 0x00bb ;Right-Pointing Double Angle Quotation Mark
+0xc9 0x2026 ;Horizontal Ellipsis
+0xca 0x00a0 ;No-Break Space
+0xcb 0x00c0 ;Latin Capital Letter A With Grave
+0xcc 0x00c3 ;Latin Capital Letter A With Tilde
+0xcd 0x00d5 ;Latin Capital Letter O With Tilde
+0xce 0x0152 ;Latin Capital Ligature Oe
+0xcf 0x0153 ;Latin Small Ligature Oe
+0xd0 0x2013 ;En Dash
+0xd1 0x2014 ;Em Dash
+0xd2 0x201c ;Left Double Quotation Mark
+0xd3 0x201d ;Right Double Quotation Mark
+0xd4 0x2018 ;Left Single Quotation Mark
+0xd5 0x2019 ;Right Single Quotation Mark
+0xd6 0x00f7 ;Division Sign
+0xd7 0x25ca ;Lozenge
+0xd8 0x00ff ;Latin Small Letter Y With Diaeresis
+0xd9 0x0178 ;Latin Capital Letter Y With Diaeresis
+0xda 0x2044 ;Fraction Slash
+0xdb 0x20ac ;Euro Sign (was 00a4 Currency Sign)
+0xdc 0x2039 ;Single Left-Pointing Angle Quotation Mark
+0xdd 0x203a ;Single Right-Pointing Angle Quotation Mark
+0xde 0xfb01 ;Latin Small Ligature Fi
+0xdf 0xfb02 ;Latin Small Ligature Fl
+0xe0 0x2021 ;Double Dagger
+0xe1 0x00b7 ;Middle Dot
+0xe2 0x201a ;Single Low-9 Quotation Mark
+0xe3 0x201e ;Double Low-9 Quotation Mark
+0xe4 0x2030 ;Per Mille Sign
+0xe5 0x00c2 ;Latin Capital Letter A With Circumflex
+0xe6 0x00ca ;Latin Capital Letter E With Circumflex
+0xe7 0x00c1 ;Latin Capital Letter A With Acute
+0xe8 0x00cb ;Latin Capital Letter E With Diaeresis
+0xe9 0x00c8 ;Latin Capital Letter E With Grave
+0xea 0x00cd ;Latin Capital Letter I With Acute
+0xeb 0x00ce ;Latin Capital Letter I With Circumflex
+0xec 0x00cf ;Latin Capital Letter I With Diaeresis
+0xed 0x00cc ;Latin Capital Letter I With Grave
+0xee 0x00d3 ;Latin Capital Letter O With Acute
+0xef 0x00d4 ;Latin Capital Letter O With Circumflex
+0xf0 0xf8ff ;Apple Logo -> EUDC
+0xf1 0x00d2 ;Latin Capital Letter O With Grave
+0xf2 0x00da ;Latin Capital Letter U With Acute
+0xf3 0x00db ;Latin Capital Letter U With Circumflex
+0xf4 0x00d9 ;Latin Capital Letter U With Grave
+0xf5 0x0131 ;Latin Small Letter Dotless I
+0xf6 0x02c6 ;Modifier Letter Circumflex Accent
+0xf7 0x02dc ;Small Tilde
+0xf8 0x00af ;Macron
+0xf9 0x02d8 ;Breve
+0xfa 0x02d9 ;Dot Above
+0xfb 0x02da ;Ring Above
+0xfc 0x00b8 ;Cedilla
+0xfd 0x02dd ;Double Acute Accent
+0xfe 0x02db ;Ogonek
+0xff 0x02c7 ;Caron
-WCTABLE 255
-0x0000 0x00 ;Null
-0x0001 0x01 ;Start Of Heading
-0x0002 0x02 ;Start Of Text
-0x0003 0x03 ;End Of Text
-0x0004 0x04 ;End Of Transmission
-0x0005 0x05 ;Enquiry
-0x0006 0x06 ;Acknowledge
-0x0007 0x07 ;Bell
-0x0008 0x08 ;Backspace
-0x0009 0x09 ;Character Tabulation
-0x000A 0x0A ;Line Feed (LF)
-0x000B 0x0B ;Line Tabulation
-0x000C 0x0C ;Form Feed (FF)
-0x000D 0x0D ;Carriage Return (CR)
-0x000E 0x0E ;Shift Out
-0x000F 0x0F ;Shift In
-0x0010 0x10 ;Data Link Escape
-0x0011 0x11 ;Device Control One
-0x0012 0x12 ;Device Control Two
-0x0013 0x13 ;Device Control Three
-0x0014 0x14 ;Device Control Four
-0x0015 0x15 ;Negative Acknowledge
-0x0016 0x16 ;Synchronous Idle
-0x0017 0x17 ;End Of Transmission Block
-0x0018 0x18 ;Cancel
-0x0019 0x19 ;End Of Medium
-0x001A 0x1A ;Substitute
-0x001B 0x1B ;Escape
-0x001C 0x1C ;Information Separator Four
-0x001D 0x1D ;Information Separator Three
-0x001E 0x1E ;Information Separator Two
-0x001F 0x1F ;Information Separator One
-0x0020 0x20 ;Space
-0x0021 0x21 ;Exclamation Mark
-0x0022 0x22 ;Quotation Mark
-0x0023 0x23 ;Number Sign
-0x0024 0x24 ;Dollar Sign
-0x0025 0x25 ;Percent Sign
-0x0026 0x26 ;Ampersand
-0x0027 0x27 ;Apostrophe
-0x0028 0x28 ;Left Parenthesis
-0x0029 0x29 ;Right Parenthesis
-0x002A 0x2A ;Asterisk
-0x002B 0x2B ;Plus Sign
-0x002C 0x2C ;Comma
-0x002D 0x2D ;Hyphen-Minus
-0x002E 0x2E ;Full Stop
-0x002F 0x2F ;Solidus
-0x0030 0x30 ;Digit Zero
-0x0031 0x31 ;Digit One
-0x0032 0x32 ;Digit Two
-0x0033 0x33 ;Digit Three
-0x0034 0x34 ;Digit Four
-0x0035 0x35 ;Digit Five
-0x0036 0x36 ;Digit Six
-0x0037 0x37 ;Digit Seven
-0x0038 0x38 ;Digit Eight
-0x0039 0x39 ;Digit Nine
-0x003A 0x3A ;Colon
-0x003B 0x3B ;Semicolon
-0x003C 0x3C ;Less-Than Sign
-0x003D 0x3D ;Equals Sign
-0x003E 0x3E ;Greater-Than Sign
-0x0040 0x40 ;Commercial At
-0x0041 0x41 ;Latin Capital Letter A
-0x0042 0x42 ;Latin Capital Letter B
-0x0043 0x43 ;Latin Capital Letter C
-0x0044 0x44 ;Latin Capital Letter D
-0x0045 0x45 ;Latin Capital Letter E
-0x0046 0x46 ;Latin Capital Letter F
-0x0047 0x47 ;Latin Capital Letter G
-0x0048 0x48 ;Latin Capital Letter H
-0x0049 0x49 ;Latin Capital Letter I
-0x004A 0x4A ;Latin Capital Letter J
-0x004B 0x4B ;Latin Capital Letter K
-0x004C 0x4C ;Latin Capital Letter L
-0x004D 0x4D ;Latin Capital Letter M
-0x004E 0x4E ;Latin Capital Letter N
-0x004F 0x4F ;Latin Capital Letter O
-0x0050 0x50 ;Latin Capital Letter P
-0x0051 0x51 ;Latin Capital Letter Q
-0x0052 0x52 ;Latin Capital Letter R
-0x0053 0x53 ;Latin Capital Letter S
-0x0054 0x54 ;Latin Capital Letter T
-0x0055 0x55 ;Latin Capital Letter U
-0x0056 0x56 ;Latin Capital Letter V
-0x0057 0x57 ;Latin Capital Letter W
-0x0058 0x58 ;Latin Capital Letter X
-0x0059 0x59 ;Latin Capital Letter Y
-0x005A 0x5A ;Latin Capital Letter Z
-0x005B 0x5B ;Left Square Bracket
-0x005C 0x5C ;Reverse Solidus
-0x005D 0x5D ;Right Square Bracket
-0x005E 0x5E ;Circumflex Accent
-0x005F 0x5F ;Low Line
-0x0060 0x60 ;Grave Accent
-0x0061 0x61 ;Latin Small Letter A
-0x0062 0x62 ;Latin Small Letter B
-0x0063 0x63 ;Latin Small Letter C
-0x0064 0x64 ;Latin Small Letter D
-0x0065 0x65 ;Latin Small Letter E
-0x0066 0x66 ;Latin Small Letter F
-0x0067 0x67 ;Latin Small Letter G
-0x0068 0x68 ;Latin Small Letter H
-0x0069 0x69 ;Latin Small Letter I
-0x006A 0x6A ;Latin Small Letter J
-0x006B 0x6B ;Latin Small Letter K
-0x006C 0x6C ;Latin Small Letter L
-0x006D 0x6D ;Latin Small Letter M
-0x006E 0x6E ;Latin Small Letter N
-0x006F 0x6F ;Latin Small Letter O
-0x0070 0x70 ;Latin Small Letter P
-0x0071 0x71 ;Latin Small Letter Q
-0x0072 0x72 ;Latin Small Letter R
-0x0073 0x73 ;Latin Small Letter S
-0x0074 0x74 ;Latin Small Letter T
-0x0075 0x75 ;Latin Small Letter U
-0x0076 0x76 ;Latin Small Letter V
-0x0077 0x77 ;Latin Small Letter W
-0x0078 0x78 ;Latin Small Letter X
-0x0079 0x79 ;Latin Small Letter Y
-0x007A 0x7A ;Latin Small Letter Z
-0x007B 0x7B ;Left Curly Bracket
-0x007C 0x7C ;Vertical Line
-0x007D 0x7D ;Right Curly Bracket
-0x007E 0x7E ;Tilde
-0x007F 0x7F ;Delete
-0x00A0 0xCA ;No-Break Space
-0x00A1 0xC1 ;Inverted Exclamation Mark
-0x00A2 0xA2 ;Cent Sign
-0x00A3 0xA3 ;Pound Sign
-0x00A5 0xB4 ;Yen Sign
-0x00A7 0xA4 ;Section Sign
-0x00A8 0xAC ;Diaeresis
-0x00A9 0xA9 ;Copyright Sign
-0x00AA 0xBB ;Feminine Ordinal Indicator
-0x00AB 0xC7 ;Left-Pointing Double Angle Quotation Mark
-0x00AC 0xC2 ;Not Sign
-0x00AE 0xA8 ;Registered Sign
-0x00AF 0xF8 ;Macron
-0x00B0 0xA1 ;Degree Sign
-0x00B1 0xB1 ;Plus-Minus Sign
-0x00B4 0xAB ;Acute Accent
-0x00B5 0xB5 ;Micro Sign
-0x00B6 0xA6 ;Pilcrow Sign
-0x00B7 0xE1 ;Middle Dot
-0x00B8 0xFC ;Cedilla
-0x00BA 0xBC ;Masculine Ordinal Indicator
-0x00BB 0xC8 ;Right-Pointing Double Angle Quotation Mark
-0x00BF 0xC0 ;Inverted Question Mark
-0x00C0 0xCB ;Latin Capital Letter A With Grave
-0x00C1 0xE7 ;Latin Capital Letter A With Acute
-0x00C2 0xE5 ;Latin Capital Letter A With Circumflex
-0x00C3 0xCC ;Latin Capital Letter A With Tilde
-0x00C4 0x80 ;Latin Capital Letter A With Diaeresis
-0x00C5 0x81 ;Latin Capital Letter A With Ring Above
-0x00C6 0xAE ;Latin Capital Letter Ae
-0x00C7 0x82 ;Latin Capital Letter C With Cedilla
-0x00C8 0xE9 ;Latin Capital Letter E With Grave
-0x00C9 0x83 ;Latin Capital Letter E With Acute
-0x00CA 0xE6 ;Latin Capital Letter E With Circumflex
-0x00CB 0xE8 ;Latin Capital Letter E With Diaeresis
-0x00CC 0xED ;Latin Capital Letter I With Grave
-0x00CD 0xEA ;Latin Capital Letter I With Acute
-0x00CE 0xEB ;Latin Capital Letter I With Circumflex
-0x00CF 0xEC ;Latin Capital Letter I With Diaeresis
-0x00D1 0x84 ;Latin Capital Letter N With Tilde
-0x00D2 0xF1 ;Latin Capital Letter O With Grave
-0x00D3 0xEE ;Latin Capital Letter O With Acute
-0x00D4 0xEF ;Latin Capital Letter O With Circumflex
-0x00D5 0xCD ;Latin Capital Letter O With Tilde
-0x00D6 0x85 ;Latin Capital Letter O With Diaeresis
-0x00D8 0xAF ;Latin Capital Letter O With Stroke
-0x00D9 0xF4 ;Latin Capital Letter U With Grave
-0x00DA 0xF2 ;Latin Capital Letter U With Acute
-0x00DB 0xF3 ;Latin Capital Letter U With Circumflex
-0x00DC 0x86 ;Latin Capital Letter U With Diaeresis
-0x00DF 0xA7 ;Latin Small Letter Sharp S
-0x00E0 0x88 ;Latin Small Letter A With Grave
-0x00E1 0x87 ;Latin Small Letter A With Acute
-0x00E2 0x89 ;Latin Small Letter A With Circumflex
-0x00E3 0x8B ;Latin Small Letter A With Tilde
-0x00E4 0x8A ;Latin Small Letter A With Diaeresis
-0x00E5 0x8C ;Latin Small Letter A With Ring Above
-0x00E6 0xBE ;Latin Small Letter Ae
-0x00E7 0x8D ;Latin Small Letter C With Cedilla
-0x00E8 0x8F ;Latin Small Letter E With Grave
-0x00E9 0x8E ;Latin Small Letter E With Acute
-0x00EA 0x90 ;Latin Small Letter E With Circumflex
-0x00EB 0x91 ;Latin Small Letter E With Diaeresis
-0x00EC 0x93 ;Latin Small Letter I With Grave
-0x00ED 0x92 ;Latin Small Letter I With Acute
-0x00EE 0x94 ;Latin Small Letter I With Circumflex
-0x00EF 0x95 ;Latin Small Letter I With Diaeresis
-0x00F1 0x96 ;Latin Small Letter N With Tilde
-0x00F2 0x98 ;Latin Small Letter O With Grave
-0x00F3 0x97 ;Latin Small Letter O With Acute
-0x00F4 0x99 ;Latin Small Letter O With Circumflex
-0x00F5 0x9B ;Latin Small Letter O With Tilde
-0x00F6 0x9A ;Latin Small Letter O With Diaeresis
-0x00F7 0xD6 ;Division Sign
-0x00F8 0xBF ;Latin Small Letter O With Stroke
-0x00F9 0x9D ;Latin Small Letter U With Grave
-0x00FA 0x9C ;Latin Small Letter U With Acute
-0x00FB 0x9E ;Latin Small Letter U With Circumflex
-0x00FC 0x9F ;Latin Small Letter U With Diaeresis
-0x00FF 0xD8 ;Latin Small Letter Y With Diaeresis
-0x0131 0xF5 ;Latin Small Letter Dotless I
-0x0152 0xCE ;Latin Capital Ligature Oe
-0x0153 0xCF ;Latin Small Ligature Oe
-0x0178 0xD9 ;Latin Capital Letter Y With Diaeresis
-0x0192 0xC4 ;Latin Small Letter F With Hook
-0x02C6 0xF6 ;Modifier Letter Circumflex Accent
-0x02C7 0xFF ;Caron
-0x02D8 0xF9 ;Breve
-0x02D9 0xFA ;Dot Above
-0x02DA 0xFB ;Ring Above
-0x02DB 0xFE ;Ogonek
-0x02DC 0xF7 ;Small Tilde
-0x02DD 0xFD ;Double Acute Accent
-0x03C0 0xB9 ;Greek Small Letter Pi
-0x2013 0xD0 ;En Dash
-0x2014 0xD1 ;Em Dash
-0x2018 0xD4 ;Left Single Quotation Mark
-0x2019 0xD5 ;Right Single Quotation Mark
-0x201A 0xE2 ;Single Low-9 Quotation Mark
-0x201C 0xD2 ;Left Double Quotation Mark
-0x201D 0xD3 ;Right Double Quotation Mark
-0x201E 0xE3 ;Double Low-9 Quotation Mark
-0x2020 0xA0 ;Dagger
-0x2021 0xE0 ;Double Dagger
-0x2022 0xA5 ;Bullet
-0x2026 0xC9 ;Horizontal Ellipsis
-0x2030 0xE4 ;Per Mille Sign
-0x2039 0xDC ;Single Left-Pointing Angle Quotation Mark
-0x203A 0xDD ;Single Right-Pointing Angle Quotation Mark
-0x2044 0xDA ;Fraction Slash
-0x20AC 0xDB ;Euro Sign
-0x2122 0xAA ;Trade Mark Sign
-0x2126 0xBD ;Ohm Sign
-0x2202 0xB6 ;Partial Differential
-0x2206 0xC6 ;Increment
-0x220F 0xB8 ;N-Ary Product
-0x2211 0xB7 ;N-Ary Summation
-0x221A 0xC3 ;Square Root
-0x221E 0xB0 ;Infinity
-0x222B 0xBA ;Integral
-0x2248 0xC5 ;Almost Equal To
-0x2260 0xAD ;Not Equal To
-0x2264 0xB2 ;Less-Than Or Equal To
-0x2265 0xB3 ;Greater-Than Or Equal To
-0x25CA 0xD7 ;Lozenge
-0xF8FF 0xF0 ;Private Use
-0xFB01 0xDE ;Latin Small Ligature Fi
-0xFB02 0xDF ;Latin Small Ligature Fl
+WCTABLE 256
+
+0x0000 0x00 ;Null
+0x0001 0x01 ;Start Of Heading
+0x0002 0x02 ;Start Of Text
+0x0003 0x03 ;End Of Text
+0x0004 0x04 ;End Of Transmission
+0x0005 0x05 ;Enquiry
+0x0006 0x06 ;Acknowledge
+0x0007 0x07 ;Bell
+0x0008 0x08 ;Backspace
+0x0009 0x09 ;Horizontal Tabulation
+0x000a 0x0a ;Line Feed
+0x000b 0x0b ;Vertical Tabulation
+0x000c 0x0c ;Form Feed
+0x000d 0x0d ;Carriage Return
+0x000e 0x0e ;Shift Out
+0x000f 0x0f ;Shift In
+0x0010 0x10 ;Data Link Escape
+0x0011 0x11 ;Device Control One
+0x0012 0x12 ;Device Control Two
+0x0013 0x13 ;Device Control Three
+0x0014 0x14 ;Device Control Four
+0x0015 0x15 ;Negative Acknowledge
+0x0016 0x16 ;Synchronous Idle
+0x0017 0x17 ;End Of Transmission Block
+0x0018 0x18 ;Cancel
+0x0019 0x19 ;End Of Medium
+0x001a 0x1a ;Substitute
+0x001b 0x1b ;Escape
+0x001c 0x1c ;File Separator
+0x001d 0x1d ;Group Separator
+0x001e 0x1e ;Record Separator
+0x001f 0x1f ;Unit Separator
+0x0020 0x20 ;Space
+0x0021 0x21 ;Exclamation Mark
+0x0022 0x22 ;Quotation Mark
+0x0023 0x23 ;Number Sign
+0x0024 0x24 ;Dollar Sign
+0x0025 0x25 ;Percent Sign
+0x0026 0x26 ;Ampersand
+0x0027 0x27 ;Apostrophe
+0x0028 0x28 ;Left Parenthesis
+0x0029 0x29 ;Right Parenthesis
+0x002a 0x2a ;Asterisk
+0x002b 0x2b ;Plus Sign
+0x002c 0x2c ;Comma
+0x002d 0x2d ;Hyphen-Minus
+0x002e 0x2e ;Full Stop
+0x002f 0x2f ;Solidus
+0x0030 0x30 ;Digit Zero
+0x0031 0x31 ;Digit One
+0x0032 0x32 ;Digit Two
+0x0033 0x33 ;Digit Three
+0x0034 0x34 ;Digit Four
+0x0035 0x35 ;Digit Five
+0x0036 0x36 ;Digit Six
+0x0037 0x37 ;Digit Seven
+0x0038 0x38 ;Digit Eight
+0x0039 0x39 ;Digit Nine
+0x003a 0x3a ;Colon
+0x003b 0x3b ;Semicolon
+0x003c 0x3c ;Less-Than Sign
+0x003d 0x3d ;Equals Sign
+0x003e 0x3e ;Greater-Than Sign
+0x003f 0x3f ;Question Mark
+0x0040 0x40 ;Commercial At
+0x0041 0x41 ;Latin Capital Letter A
+0x0042 0x42 ;Latin Capital Letter B
+0x0043 0x43 ;Latin Capital Letter C
+0x0044 0x44 ;Latin Capital Letter D
+0x0045 0x45 ;Latin Capital Letter E
+0x0046 0x46 ;Latin Capital Letter F
+0x0047 0x47 ;Latin Capital Letter G
+0x0048 0x48 ;Latin Capital Letter H
+0x0049 0x49 ;Latin Capital Letter I
+0x004a 0x4a ;Latin Capital Letter J
+0x004b 0x4b ;Latin Capital Letter K
+0x004c 0x4c ;Latin Capital Letter L
+0x004d 0x4d ;Latin Capital Letter M
+0x004e 0x4e ;Latin Capital Letter N
+0x004f 0x4f ;Latin Capital Letter O
+0x0050 0x50 ;Latin Capital Letter P
+0x0051 0x51 ;Latin Capital Letter Q
+0x0052 0x52 ;Latin Capital Letter R
+0x0053 0x53 ;Latin Capital Letter S
+0x0054 0x54 ;Latin Capital Letter T
+0x0055 0x55 ;Latin Capital Letter U
+0x0056 0x56 ;Latin Capital Letter V
+0x0057 0x57 ;Latin Capital Letter W
+0x0058 0x58 ;Latin Capital Letter X
+0x0059 0x59 ;Latin Capital Letter Y
+0x005a 0x5a ;Latin Capital Letter Z
+0x005b 0x5b ;Left Square Bracket
+0x005c 0x5c ;Reverse Solidus
+0x005d 0x5d ;Right Square Bracket
+0x005e 0x5e ;Circumflex Accent
+0x005f 0x5f ;Low Line
+0x0060 0x60 ;Grave Accent
+0x0061 0x61 ;Latin Small Letter A
+0x0062 0x62 ;Latin Small Letter B
+0x0063 0x63 ;Latin Small Letter C
+0x0064 0x64 ;Latin Small Letter D
+0x0065 0x65 ;Latin Small Letter E
+0x0066 0x66 ;Latin Small Letter F
+0x0067 0x67 ;Latin Small Letter G
+0x0068 0x68 ;Latin Small Letter H
+0x0069 0x69 ;Latin Small Letter I
+0x006a 0x6a ;Latin Small Letter J
+0x006b 0x6b ;Latin Small Letter K
+0x006c 0x6c ;Latin Small Letter L
+0x006d 0x6d ;Latin Small Letter M
+0x006e 0x6e ;Latin Small Letter N
+0x006f 0x6f ;Latin Small Letter O
+0x0070 0x70 ;Latin Small Letter P
+0x0071 0x71 ;Latin Small Letter Q
+0x0072 0x72 ;Latin Small Letter R
+0x0073 0x73 ;Latin Small Letter S
+0x0074 0x74 ;Latin Small Letter T
+0x0075 0x75 ;Latin Small Letter U
+0x0076 0x76 ;Latin Small Letter V
+0x0077 0x77 ;Latin Small Letter W
+0x0078 0x78 ;Latin Small Letter X
+0x0079 0x79 ;Latin Small Letter Y
+0x007a 0x7a ;Latin Small Letter Z
+0x007b 0x7b ;Left Curly Bracket
+0x007c 0x7c ;Vertical Line
+0x007d 0x7d ;Right Curly Bracket
+0x007e 0x7e ;Tilde
+0x007f 0x7f ;Delete
+0x00a0 0xca ;No-Break Space
+0x00a1 0xc1 ;Inverted Exclamation Mark
+0x00a2 0xa2 ;Cent Sign
+0x00a3 0xa3 ;Pound Sign
+0x00a5 0xb4 ;Yen Sign
+0x00a7 0xa4 ;Section Sign
+0x00a8 0xac ;Diaeresis
+0x00a9 0xa9 ;Copyright Sign
+0x00aa 0xbb ;Feminine Ordinal Indicator
+0x00ab 0xc7 ;Left-Pointing Double Angle Quotation Mark
+0x00ac 0xc2 ;Not Sign
+0x00ae 0xa8 ;Registered Sign
+0x00af 0xf8 ;Macron
+0x00b0 0xa1 ;Degree Sign
+0x00b1 0xb1 ;Plus-Minus Sign
+0x00b4 0xab ;Acute Accent
+0x00b5 0xb5 ;Micro Sign
+0x00b6 0xa6 ;Pilcrow Sign
+0x00b7 0xe1 ;Middle Dot
+0x00b8 0xfc ;Cedilla
+0x00ba 0xbc ;Masculine Ordinal Indicator
+0x00bb 0xc8 ;Right-Pointing Double Angle Quotation Mark
+0x00bf 0xc0 ;Inverted Question Mark
+0x00c0 0xcb ;Latin Capital Letter A With Grave
+0x00c1 0xe7 ;Latin Capital Letter A With Acute
+0x00c2 0xe5 ;Latin Capital Letter A With Circumflex
+0x00c3 0xcc ;Latin Capital Letter A With Tilde
+0x00c4 0x80 ;Latin Capital Letter A With Diaeresis
+0x00c5 0x81 ;Latin Capital Letter A With Ring Above
+0x00c6 0xae ;Latin Capital Ligature Ae
+0x00c7 0x82 ;Latin Capital Letter C With Cedilla
+0x00c8 0xe9 ;Latin Capital Letter E With Grave
+0x00c9 0x83 ;Latin Capital Letter E With Acute
+0x00ca 0xe6 ;Latin Capital Letter E With Circumflex
+0x00cb 0xe8 ;Latin Capital Letter E With Diaeresis
+0x00cc 0xed ;Latin Capital Letter I With Grave
+0x00cd 0xea ;Latin Capital Letter I With Acute
+0x00ce 0xeb ;Latin Capital Letter I With Circumflex
+0x00cf 0xec ;Latin Capital Letter I With Diaeresis
+0x00d1 0x84 ;Latin Capital Letter N With Tilde
+0x00d2 0xf1 ;Latin Capital Letter O With Grave
+0x00d3 0xee ;Latin Capital Letter O With Acute
+0x00d4 0xef ;Latin Capital Letter O With Circumflex
+0x00d5 0xcd ;Latin Capital Letter O With Tilde
+0x00d6 0x85 ;Latin Capital Letter O With Diaeresis
+0x00d8 0xaf ;Latin Capital Letter O With Stroke
+0x00d9 0xf4 ;Latin Capital Letter U With Grave
+0x00da 0xf2 ;Latin Capital Letter U With Acute
+0x00db 0xf3 ;Latin Capital Letter U With Circumflex
+0x00dc 0x86 ;Latin Capital Letter U With Diaeresis
+0x00df 0xa7 ;Latin Small Letter Sharp S
+0x00e0 0x88 ;Latin Small Letter A With Grave
+0x00e1 0x87 ;Latin Small Letter A With Acute
+0x00e2 0x89 ;Latin Small Letter A With Circumflex
+0x00e3 0x8b ;Latin Small Letter A With Tilde
+0x00e4 0x8a ;Latin Small Letter A With Diaeresis
+0x00e5 0x8c ;Latin Small Letter A With Ring Above
+0x00e6 0xbe ;Latin Small Ligature Ae
+0x00e7 0x8d ;Latin Small Letter C With Cedilla
+0x00e8 0x8f ;Latin Small Letter E With Grave
+0x00e9 0x8e ;Latin Small Letter E With Acute
+0x00ea 0x90 ;Latin Small Letter E With Circumflex
+0x00eb 0x91 ;Latin Small Letter E With Diaeresis
+0x00ec 0x93 ;Latin Small Letter I With Grave
+0x00ed 0x92 ;Latin Small Letter I With Acute
+0x00ee 0x94 ;Latin Small Letter I With Circumflex
+0x00ef 0x95 ;Latin Small Letter I With Diaeresis
+0x00f1 0x96 ;Latin Small Letter N With Tilde
+0x00f2 0x98 ;Latin Small Letter O With Grave
+0x00f3 0x97 ;Latin Small Letter O With Acute
+0x00f4 0x99 ;Latin Small Letter O With Circumflex
+0x00f5 0x9b ;Latin Small Letter O With Tilde
+0x00f6 0x9a ;Latin Small Letter O With Diaeresis
+0x00f7 0xd6 ;Division Sign
+0x00f8 0xbf ;Latin Small Letter O With Stroke
+0x00f9 0x9d ;Latin Small Letter U With Grave
+0x00fa 0x9c ;Latin Small Letter U With Acute
+0x00fb 0x9e ;Latin Small Letter U With Circumflex
+0x00fc 0x9f ;Latin Small Letter U With Diaeresis
+0x00ff 0xd8 ;Latin Small Letter Y With Diaeresis
+0x0131 0xf5 ;Latin Small Letter Dotless I
+0x0152 0xce ;Latin Capital Ligature Oe
+0x0153 0xcf ;Latin Small Ligature Oe
+0x0178 0xd9 ;Latin Capital Letter Y With Diaeresis
+0x0192 0xc4 ;Latin Small Letter F With Hook
+0x02c6 0xf6 ;Modifier Letter Circumflex Accent
+0x02c7 0xff ;Caron
+0x02d8 0xf9 ;Breve
+0x02d9 0xfa ;Dot Above
+0x02da 0xfb ;Ring Above
+0x02db 0xfe ;Ogonek
+0x02dc 0xf7 ;Small Tilde
+0x02dd 0xfd ;Double Acute Accent
+0x03c0 0xb9 ;Greek Small Letter Pi
+0x2013 0xd0 ;En Dash
+0x2014 0xd1 ;Em Dash
+0x2018 0xd4 ;Left Single Quotation Mark
+0x2019 0xd5 ;Right Single Quotation Mark
+0x201a 0xe2 ;Single Low-9 Quotation Mark
+0x201c 0xd2 ;Left Double Quotation Mark
+0x201d 0xd3 ;Right Double Quotation Mark
+0x201e 0xe3 ;Double Low-9 Quotation Mark
+0x2020 0xa0 ;Dagger
+0x2021 0xe0 ;Double Dagger
+0x2022 0xa5 ;Bullet
+0x2026 0xc9 ;Horizontal Ellipsis
+0x2030 0xe4 ;Per Mille Sign
+0x2039 0xdc ;Single Left-Pointing Angle Quotation Mark
+0x203a 0xdd ;Single Right-Pointing Angle Quotation Mark
+0x2044 0xda ;Fraction Slash
+0x20ac 0xdb ;Euro Sign (was 00a4 Currency Sign)
+0x2122 0xaa ;Trade Mark Sign
+0x2126 0xbd ;Ohm Sign
+0x2202 0xb6 ;Partial Differential
+0x2206 0xc6 ;Increment
+0x220f 0xb8 ;N-Ary Product
+0x2211 0xb7 ;N-Ary Summation
+0x221a 0xc3 ;Square Root
+0x221e 0xb0 ;Infinity
+0x222b 0xba ;Integral
+0x2248 0xc5 ;Almost Equal To
+0x2260 0xad ;Not Equal To
+0x2264 0xb2 ;Less-Than Or Equal To
+0x2265 0xb3 ;Greater-Than Or Equal To
+0x25ca 0xd7 ;Lozenge
+0xf8ff 0xf0 ;EUDC -> Apple Logo
+0xfb01 0xde ;Latin Small Ligature Fi
+0xfb02 0xdf ;Latin Small Ligature Fl
ENDCODEPAGE
diff --git a/media/nls/src/c_10001.txt b/media/nls/src/c_10001.txt
new file mode 100644
index 00000000000..071492c444d
--- /dev/null
+++ b/media/nls/src/c_10001.txt
@@ -0,0 +1,19568 @@
+CODEPAGE 10001 ; Japanese - MAC
+
+CPINFO 2 0x3f 0x30fb ; DBCS CP, Unic Default Char = Katakana Middle Dot
+
+MBTABLE 196
+
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x0080
+0xa0 0x00a0
+0xa1 0xff61
+0xa2 0xff62
+0xa3 0xff63
+0xa4 0xff64
+0xa5 0xff65
+0xa6 0xff66
+0xa7 0xff67
+0xa8 0xff68
+0xa9 0xff69
+0xaa 0xff6a
+0xab 0xff6b
+0xac 0xff6c
+0xad 0xff6d
+0xae 0xff6e
+0xaf 0xff6f
+0xb0 0xff70
+0xb1 0xff71
+0xb2 0xff72
+0xb3 0xff73
+0xb4 0xff74
+0xb5 0xff75
+0xb6 0xff76
+0xb7 0xff77
+0xb8 0xff78
+0xb9 0xff79
+0xba 0xff7a
+0xbb 0xff7b
+0xbc 0xff7c
+0xbd 0xff7d
+0xbe 0xff7e
+0xbf 0xff7f
+0xc0 0xff80
+0xc1 0xff81
+0xc2 0xff82
+0xc3 0xff83
+0xc4 0xff84
+0xc5 0xff85
+0xc6 0xff86
+0xc7 0xff87
+0xc8 0xff88
+0xc9 0xff89
+0xca 0xff8a
+0xcb 0xff8b
+0xcc 0xff8c
+0xcd 0xff8d
+0xce 0xff8e
+0xcf 0xff8f
+0xd0 0xff90
+0xd1 0xff91
+0xd2 0xff92
+0xd3 0xff93
+0xd4 0xff94
+0xd5 0xff95
+0xd6 0xff96
+0xd7 0xff97
+0xd8 0xff98
+0xd9 0xff99
+0xda 0xff9a
+0xdb 0xff9b
+0xdc 0xff9c
+0xdd 0xff9d
+0xde 0xff9e
+0xdf 0xff9f
+0xfd 0x00a9 ;Copyright Sign
+0xfe 0x2122 ;Trademark
+0xff 0x2026 ;Horizontal Ellipsis
+
+
+DBCSRANGE 2 ;2 DBCS Lead Byte Ranges: 0x81-0x9f and 0xe0-0xfc
+
+0x81 0x9f ;Lead Byte Range
+
+
+DBCSTABLE 147 ;LeadByte = 0x81
+
+0x40 0x3000
+0x41 0x3001
+0x42 0x3002
+0x43 0xff0c
+0x44 0xff0e
+0x45 0x30fb
+0x46 0xff1a
+0x47 0xff1b
+0x48 0xff1f
+0x49 0xff01
+0x4a 0x309b
+0x4b 0x309c
+0x4c 0x00b4
+0x4d 0xff40
+0x4e 0x00a8
+0x4f 0xff3e
+0x50 0xffe3
+0x51 0xff3f
+0x52 0x30fd
+0x53 0x30fe
+0x54 0x309d
+0x55 0x309e
+0x56 0x3003
+0x57 0x4edd
+0x58 0x3005
+0x59 0x3006
+0x5a 0x3007
+0x5b 0x30fc
+0x5c 0x2015
+0x5d 0x2010
+0x5e 0xff0f
+0x5f 0xff3c
+0x60 0xff5e
+0x61 0x2225
+0x62 0xff5c
+0x63 0x2026
+0x64 0x2025
+0x65 0x2018
+0x66 0x2019
+0x67 0x201c
+0x68 0x201d
+0x69 0xff08
+0x6a 0xff09
+0x6b 0x3014
+0x6c 0x3015
+0x6d 0xff3b
+0x6e 0xff3d
+0x6f 0xff5b
+0x70 0xff5d
+0x71 0x3008
+0x72 0x3009
+0x73 0x300a
+0x74 0x300b
+0x75 0x300c
+0x76 0x300d
+0x77 0x300e
+0x78 0x300f
+0x79 0x3010
+0x7a 0x3011
+0x7b 0xff0b
+0x7c 0xff0d
+0x7d 0x00b1
+0x7e 0x00d7
+0x80 0x00f7
+0x81 0xff1d
+0x82 0x2260
+0x83 0xff1c
+0x84 0xff1e
+0x85 0x2266
+0x86 0x2267
+0x87 0x221e
+0x88 0x2234
+0x89 0x2642
+0x8a 0x2640
+0x8b 0x00b0
+0x8c 0x2032
+0x8d 0x2033
+0x8e 0x2103
+0x8f 0xffe5
+0x90 0xff04
+0x91 0xffe0
+0x92 0xffe1
+0x93 0xff05
+0x94 0xff03
+0x95 0xff06
+0x96 0xff0a
+0x97 0xff20
+0x98 0x00a7
+0x99 0x2606
+0x9a 0x2605
+0x9b 0x25cb
+0x9c 0x25cf
+0x9d 0x25ce
+0x9e 0x25c7
+0x9f 0x25c6
+0xa0 0x25a1
+0xa1 0x25a0
+0xa2 0x25b3
+0xa3 0x25b2
+0xa4 0x25bd
+0xa5 0x25bc
+0xa6 0x203b
+0xa7 0x3012
+0xa8 0x2192
+0xa9 0x2190
+0xaa 0x2191
+0xab 0x2193
+0xac 0x3013
+0xb8 0x2208
+0xb9 0x220b
+0xba 0x2286
+0xbb 0x2287
+0xbc 0x2282
+0xbd 0x2283
+0xbe 0x222a
+0xbf 0x2229
+0xc8 0x2227
+0xc9 0x2228
+0xca 0xffe2
+0xcb 0x21d2
+0xcc 0x21d4
+0xcd 0x2200
+0xce 0x2203
+0xda 0x2220
+0xdb 0x22a5
+0xdc 0x2312
+0xdd 0x2202
+0xde 0x2207
+0xdf 0x2261
+0xe0 0x2252
+0xe1 0x226a
+0xe2 0x226b
+0xe3 0x221a
+0xe4 0x223d
+0xe5 0x221d
+0xe6 0x2235
+0xe7 0x222b
+0xe8 0x222c
+0xf0 0x212b
+0xf1 0x2030
+0xf2 0x266f
+0xf3 0x266d
+0xf4 0x266a
+0xf5 0x2020
+0xf6 0x2021
+0xf7 0x00b6
+0xfc 0x25ef
+
+DBCSTABLE 145 ;LeadByte = 0x82
+
+0x4f 0xff10
+0x50 0xff11
+0x51 0xff12
+0x52 0xff13
+0x53 0xff14
+0x54 0xff15
+0x55 0xff16
+0x56 0xff17
+0x57 0xff18
+0x58 0xff19
+0x60 0xff21
+0x61 0xff22
+0x62 0xff23
+0x63 0xff24
+0x64 0xff25
+0x65 0xff26
+0x66 0xff27
+0x67 0xff28
+0x68 0xff29
+0x69 0xff2a
+0x6a 0xff2b
+0x6b 0xff2c
+0x6c 0xff2d
+0x6d 0xff2e
+0x6e 0xff2f
+0x6f 0xff30
+0x70 0xff31
+0x71 0xff32
+0x72 0xff33
+0x73 0xff34
+0x74 0xff35
+0x75 0xff36
+0x76 0xff37
+0x77 0xff38
+0x78 0xff39
+0x79 0xff3a
+0x81 0xff41
+0x82 0xff42
+0x83 0xff43
+0x84 0xff44
+0x85 0xff45
+0x86 0xff46
+0x87 0xff47
+0x88 0xff48
+0x89 0xff49
+0x8a 0xff4a
+0x8b 0xff4b
+0x8c 0xff4c
+0x8d 0xff4d
+0x8e 0xff4e
+0x8f 0xff4f
+0x90 0xff50
+0x91 0xff51
+0x92 0xff52
+0x93 0xff53
+0x94 0xff54
+0x95 0xff55
+0x96 0xff56
+0x97 0xff57
+0x98 0xff58
+0x99 0xff59
+0x9a 0xff5a
+0x9f 0x3041
+0xa0 0x3042
+0xa1 0x3043
+0xa2 0x3044
+0xa3 0x3045
+0xa4 0x3046
+0xa5 0x3047
+0xa6 0x3048
+0xa7 0x3049
+0xa8 0x304a
+0xa9 0x304b
+0xaa 0x304c
+0xab 0x304d
+0xac 0x304e
+0xad 0x304f
+0xae 0x3050
+0xaf 0x3051
+0xb0 0x3052
+0xb1 0x3053
+0xb2 0x3054
+0xb3 0x3055
+0xb4 0x3056
+0xb5 0x3057
+0xb6 0x3058
+0xb7 0x3059
+0xb8 0x305a
+0xb9 0x305b
+0xba 0x305c
+0xbb 0x305d
+0xbc 0x305e
+0xbd 0x305f
+0xbe 0x3060
+0xbf 0x3061
+0xc0 0x3062
+0xc1 0x3063
+0xc2 0x3064
+0xc3 0x3065
+0xc4 0x3066
+0xc5 0x3067
+0xc6 0x3068
+0xc7 0x3069
+0xc8 0x306a
+0xc9 0x306b
+0xca 0x306c
+0xcb 0x306d
+0xcc 0x306e
+0xcd 0x306f
+0xce 0x3070
+0xcf 0x3071
+0xd0 0x3072
+0xd1 0x3073
+0xd2 0x3074
+0xd3 0x3075
+0xd4 0x3076
+0xd5 0x3077
+0xd6 0x3078
+0xd7 0x3079
+0xd8 0x307a
+0xd9 0x307b
+0xda 0x307c
+0xdb 0x307d
+0xdc 0x307e
+0xdd 0x307f
+0xde 0x3080
+0xdf 0x3081
+0xe0 0x3082
+0xe1 0x3083
+0xe2 0x3084
+0xe3 0x3085
+0xe4 0x3086
+0xe5 0x3087
+0xe6 0x3088
+0xe7 0x3089
+0xe8 0x308a
+0xe9 0x308b
+0xea 0x308c
+0xeb 0x308d
+0xec 0x308e
+0xed 0x308f
+0xee 0x3090
+0xef 0x3091
+0xf0 0x3092
+0xf1 0x3093
+
+DBCSTABLE 134 ;LeadByte = 0x83
+
+0x40 0x30a1
+0x41 0x30a2
+0x42 0x30a3
+0x43 0x30a4
+0x44 0x30a5
+0x45 0x30a6
+0x46 0x30a7
+0x47 0x30a8
+0x48 0x30a9
+0x49 0x30aa
+0x4a 0x30ab
+0x4b 0x30ac
+0x4c 0x30ad
+0x4d 0x30ae
+0x4e 0x30af
+0x4f 0x30b0
+0x50 0x30b1
+0x51 0x30b2
+0x52 0x30b3
+0x53 0x30b4
+0x54 0x30b5
+0x55 0x30b6
+0x56 0x30b7
+0x57 0x30b8
+0x58 0x30b9
+0x59 0x30ba
+0x5a 0x30bb
+0x5b 0x30bc
+0x5c 0x30bd
+0x5d 0x30be
+0x5e 0x30bf
+0x5f 0x30c0
+0x60 0x30c1
+0x61 0x30c2
+0x62 0x30c3
+0x63 0x30c4
+0x64 0x30c5
+0x65 0x30c6
+0x66 0x30c7
+0x67 0x30c8
+0x68 0x30c9
+0x69 0x30ca
+0x6a 0x30cb
+0x6b 0x30cc
+0x6c 0x30cd
+0x6d 0x30ce
+0x6e 0x30cf
+0x6f 0x30d0
+0x70 0x30d1
+0x71 0x30d2
+0x72 0x30d3
+0x73 0x30d4
+0x74 0x30d5
+0x75 0x30d6
+0x76 0x30d7
+0x77 0x30d8
+0x78 0x30d9
+0x79 0x30da
+0x7a 0x30db
+0x7b 0x30dc
+0x7c 0x30dd
+0x7d 0x30de
+0x7e 0x30df
+0x80 0x30e0
+0x81 0x30e1
+0x82 0x30e2
+0x83 0x30e3
+0x84 0x30e4
+0x85 0x30e5
+0x86 0x30e6
+0x87 0x30e7
+0x88 0x30e8
+0x89 0x30e9
+0x8a 0x30ea
+0x8b 0x30eb
+0x8c 0x30ec
+0x8d 0x30ed
+0x8e 0x30ee
+0x8f 0x30ef
+0x90 0x30f0
+0x91 0x30f1
+0x92 0x30f2
+0x93 0x30f3
+0x94 0x30f4
+0x95 0x30f5
+0x96 0x30f6
+0x9f 0x0391
+0xa0 0x0392
+0xa1 0x0393
+0xa2 0x0394
+0xa3 0x0395
+0xa4 0x0396
+0xa5 0x0397
+0xa6 0x0398
+0xa7 0x0399
+0xa8 0x039a
+0xa9 0x039b
+0xaa 0x039c
+0xab 0x039d
+0xac 0x039e
+0xad 0x039f
+0xae 0x03a0
+0xaf 0x03a1
+0xb0 0x03a3
+0xb1 0x03a4
+0xb2 0x03a5
+0xb3 0x03a6
+0xb4 0x03a7
+0xb5 0x03a8
+0xb6 0x03a9
+0xbf 0x03b1
+0xc0 0x03b2
+0xc1 0x03b3
+0xc2 0x03b4
+0xc3 0x03b5
+0xc4 0x03b6
+0xc5 0x03b7
+0xc6 0x03b8
+0xc7 0x03b9
+0xc8 0x03ba
+0xc9 0x03bb
+0xca 0x03bc
+0xcb 0x03bd
+0xcc 0x03be
+0xcd 0x03bf
+0xce 0x03c0
+0xcf 0x03c1
+0xd0 0x03c3
+0xd1 0x03c4
+0xd2 0x03c5
+0xd3 0x03c6
+0xd4 0x03c7
+0xd5 0x03c8
+0xd6 0x03c9
+
+DBCSTABLE 98 ;LeadByte = 0x84
+
+0x40 0x0410
+0x41 0x0411
+0x42 0x0412
+0x43 0x0413
+0x44 0x0414
+0x45 0x0415
+0x46 0x0401
+0x47 0x0416
+0x48 0x0417
+0x49 0x0418
+0x4a 0x0419
+0x4b 0x041a
+0x4c 0x041b
+0x4d 0x041c
+0x4e 0x041d
+0x4f 0x041e
+0x50 0x041f
+0x51 0x0420
+0x52 0x0421
+0x53 0x0422
+0x54 0x0423
+0x55 0x0424
+0x56 0x0425
+0x57 0x0426
+0x58 0x0427
+0x59 0x0428
+0x5a 0x0429
+0x5b 0x042a
+0x5c 0x042b
+0x5d 0x042c
+0x5e 0x042d
+0x5f 0x042e
+0x60 0x042f
+0x70 0x0430
+0x71 0x0431
+0x72 0x0432
+0x73 0x0433
+0x74 0x0434
+0x75 0x0435
+0x76 0x0451
+0x77 0x0436
+0x78 0x0437
+0x79 0x0438
+0x7a 0x0439
+0x7b 0x043a
+0x7c 0x043b
+0x7d 0x043c
+0x7e 0x043d
+0x80 0x043e
+0x81 0x043f
+0x82 0x0440
+0x83 0x0441
+0x84 0x0442
+0x85 0x0443
+0x86 0x0444
+0x87 0x0445
+0x88 0x0446
+0x89 0x0447
+0x8a 0x0448
+0x8b 0x0449
+0x8c 0x044a
+0x8d 0x044b
+0x8e 0x044c
+0x8f 0x044d
+0x90 0x044e
+0x91 0x044f
+0x9f 0x2500
+0xa0 0x2502
+0xa1 0x250c
+0xa2 0x2510
+0xa3 0x2518
+0xa4 0x2514
+0xa5 0x251c
+0xa6 0x252c
+0xa7 0x2524
+0xa8 0x2534
+0xa9 0x253c
+0xaa 0x2501
+0xab 0x2503
+0xac 0x250f
+0xad 0x2513
+0xae 0x251b
+0xaf 0x2517
+0xb0 0x2523
+0xb1 0x2533
+0xb2 0x252b
+0xb3 0x253b
+0xb4 0x254b
+0xb5 0x2520
+0xb6 0x252f
+0xb7 0x2528
+0xb8 0x2537
+0xb9 0x253f
+0xba 0x251d
+0xbb 0x2530
+0xbc 0x2525
+0xbd 0x2538
+0xbe 0x2542
+
+DBCSTABLE 40 ;LeadByte = 0x85
+
+0x40 0x2460
+0x41 0x2461
+0x42 0x2462
+0x43 0x2463
+0x44 0x2464
+0x45 0x2465
+0x46 0x2466
+0x47 0x2467
+0x48 0x2468
+0x49 0x2469
+0x4a 0x246a
+0x4b 0x246b
+0x4c 0x246c
+0x4d 0x246d
+0x4e 0x246e
+0x4f 0x246f
+0x50 0x2470
+0x51 0x2471
+0x52 0x2472
+0x53 0x2473
+0x9f 0x2160
+0xa0 0x2161
+0xa1 0x2162
+0xa2 0x2163
+0xa3 0x2164
+0xa4 0x2165
+0xa5 0x2166
+0xa6 0x2167
+0xa7 0x2168
+0xa8 0x2169
+0xb3 0x2170
+0xb4 0x2171
+0xb5 0x2172
+0xb6 0x2173
+0xb7 0x2174
+0xb8 0x2175
+0xb9 0x2176
+0xba 0x2177
+0xbb 0x2178
+0xbc 0x2179
+
+DBCSTABLE 14 ;LeadByte = 0x86
+
+0x40 0x339c
+0x42 0x339d
+0x46 0x33a1
+0x48 0x339e
+0x4a 0x338e
+0x4c 0x338f
+0x4d 0x33c4
+0x9b 0x2116
+0x9c 0x33cd
+0x9d 0x2121
+0xd3 0x2192
+0xd4 0x2190
+0xd5 0x2191
+0xd6 0x2193
+
+DBCSTABLE 105 ;LeadByte = 0x87
+
+0x40 0x65e5
+0x41 0x6708
+0x42 0x706b
+0x43 0x6c34
+0x44 0x6728
+0x45 0x91d1
+0x46 0x571f
+0x47 0x796d
+0x48 0x795d
+0x49 0x81ea
+0x4a 0x81f3
+0x4b 0x3239
+0x4c 0x547c
+0x4d 0x3231
+0x4e 0x8cc7
+0x4f 0x540d
+0x50 0x3232
+0x51 0x5b66
+0x52 0x8ca1
+0x53 0x793e
+0x54 0x7279
+0x55 0x76e3
+0x56 0x4f01
+0x57 0x5354
+0x58 0x52b4
+0x59 0x2165
+0x5a 0x2166
+0x5b 0x2167
+0x5c 0x2168
+0x5d 0x2169
+0x5f 0x3349
+0x60 0x3314
+0x61 0x3322
+0x62 0x334d
+0x63 0x3318
+0x64 0x3327
+0x65 0x3303
+0x66 0x3336
+0x67 0x3351
+0x68 0x3357
+0x69 0x330d
+0x6a 0x3326
+0x6b 0x3323
+0x6c 0x332b
+0x6d 0x334a
+0x6e 0x333b
+0x6f 0x339c
+0x70 0x339d
+0x71 0x339e
+0x72 0x338e
+0x73 0x338f
+0x74 0x33c4
+0x75 0x33a1
+0x7e 0x337b
+0x80 0x301d
+0x81 0x301f
+0x82 0x2116
+0x83 0x33cd
+0x84 0x2121
+0x85 0x32a4
+0x86 0x32a5
+0x87 0x32a6
+0x88 0x32a7
+0x89 0x32a8
+0x8a 0x3231
+0x8b 0x3232
+0x8c 0x3239
+0x8d 0x337e
+0x8e 0x337d
+0x8f 0x337c
+0x90 0x2252
+0x91 0x5927
+0x92 0x5c0f
+0x93 0x32a4
+0x94 0x32a5
+0x95 0x32a6
+0x96 0x32a7
+0x97 0x32a8
+0x98 0x533b
+0x99 0x8ca1
+0x9a 0x512a
+0x9b 0x52b4
+0x9c 0x5370
+0x9d 0x63a7
+0x9e 0x79d8
+0x9f 0x3349
+0xa0 0x3322
+0xa1 0x334d
+0xa2 0x3314
+0xa7 0x3303
+0xa8 0x3336
+0xa9 0x3318
+0xab 0x3327
+0xac 0x3351
+0xad 0x334a
+0xaf 0x3357
+0xb0 0x330d
+0xb2 0x3323
+0xb3 0x3326
+0xb4 0x333b
+0xb5 0x332b
+0xe5 0x337e
+0xe6 0x337d
+0xe7 0x337c
+0xe8 0x337b
+
+DBCSTABLE 97 ;LeadByte = 0x88
+
+0x40 0x222e
+0x41 0x221f
+0x42 0x22bf
+0x9f 0x4e9c
+0xa0 0x5516
+0xa1 0x5a03
+0xa2 0x963f
+0xa3 0x54c0
+0xa4 0x611b
+0xa5 0x6328
+0xa6 0x59f6
+0xa7 0x9022
+0xa8 0x8475
+0xa9 0x831c
+0xaa 0x7a50
+0xab 0x60aa
+0xac 0x63e1
+0xad 0x6e25
+0xae 0x65ed
+0xaf 0x8466
+0xb0 0x82a6
+0xb1 0x9bf5
+0xb2 0x6893
+0xb3 0x5727
+0xb4 0x65a1
+0xb5 0x6271
+0xb6 0x5b9b
+0xb7 0x59d0
+0xb8 0x867b
+0xb9 0x98f4
+0xba 0x7d62
+0xbb 0x7dbe
+0xbc 0x9b8e
+0xbd 0x6216
+0xbe 0x7c9f
+0xbf 0x88b7
+0xc0 0x5b89
+0xc1 0x5eb5
+0xc2 0x6309
+0xc3 0x6697
+0xc4 0x6848
+0xc5 0x95c7
+0xc6 0x978d
+0xc7 0x674f
+0xc8 0x4ee5
+0xc9 0x4f0a
+0xca 0x4f4d
+0xcb 0x4f9d
+0xcc 0x5049
+0xcd 0x56f2
+0xce 0x5937
+0xcf 0x59d4
+0xd0 0x5a01
+0xd1 0x5c09
+0xd2 0x60df
+0xd3 0x610f
+0xd4 0x6170
+0xd5 0x6613
+0xd6 0x6905
+0xd7 0x70ba
+0xd8 0x754f
+0xd9 0x7570
+0xda 0x79fb
+0xdb 0x7dad
+0xdc 0x7def
+0xdd 0x80c3
+0xde 0x840e
+0xdf 0x8863
+0xe0 0x8b02
+0xe1 0x9055
+0xe2 0x907a
+0xe3 0x533b
+0xe4 0x4e95
+0xe5 0x4ea5
+0xe6 0x57df
+0xe7 0x80b2
+0xe8 0x90c1
+0xe9 0x78ef
+0xea 0x4e00
+0xeb 0x58f1
+0xec 0x6ea2
+0xed 0x9038
+0xee 0x7a32
+0xef 0x8328
+0xf0 0x828b
+0xf1 0x9c2f
+0xf2 0x5141
+0xf3 0x5370
+0xf4 0x54bd
+0xf5 0x54e1
+0xf6 0x56e0
+0xf7 0x59fb
+0xf8 0x5f15
+0xf9 0x98f2
+0xfa 0x6deb
+0xfb 0x80e4
+0xfc 0x852d
+
+DBCSTABLE 188 ;LeadByte = 0x89
+
+0x40 0x9662
+0x41 0x9670
+0x42 0x96a0
+0x43 0x97fb
+0x44 0x540b
+0x45 0x53f3
+0x46 0x5b87
+0x47 0x70cf
+0x48 0x7fbd
+0x49 0x8fc2
+0x4a 0x96e8
+0x4b 0x536f
+0x4c 0x9d5c
+0x4d 0x7aba
+0x4e 0x4e11
+0x4f 0x7893
+0x50 0x81fc
+0x51 0x6e26
+0x52 0x5618
+0x53 0x5504
+0x54 0x6b1d
+0x55 0x851a
+0x56 0x9c3b
+0x57 0x59e5
+0x58 0x53a9
+0x59 0x6d66
+0x5a 0x74dc
+0x5b 0x958f
+0x5c 0x5642
+0x5d 0x4e91
+0x5e 0x904b
+0x5f 0x96f2
+0x60 0x834f
+0x61 0x990c
+0x62 0x53e1
+0x63 0x55b6
+0x64 0x5b30
+0x65 0x5f71
+0x66 0x6620
+0x67 0x66f3
+0x68 0x6804
+0x69 0x6c38
+0x6a 0x6cf3
+0x6b 0x6d29
+0x6c 0x745b
+0x6d 0x76c8
+0x6e 0x7a4e
+0x6f 0x9834
+0x70 0x82f1
+0x71 0x885b
+0x72 0x8a60
+0x73 0x92ed
+0x74 0x6db2
+0x75 0x75ab
+0x76 0x76ca
+0x77 0x99c5
+0x78 0x60a6
+0x79 0x8b01
+0x7a 0x8d8a
+0x7b 0x95b2
+0x7c 0x698e
+0x7d 0x53ad
+0x7e 0x5186
+0x80 0x5712
+0x81 0x5830
+0x82 0x5944
+0x83 0x5bb4
+0x84 0x5ef6
+0x85 0x6028
+0x86 0x63a9
+0x87 0x63f4
+0x88 0x6cbf
+0x89 0x6f14
+0x8a 0x708e
+0x8b 0x7114
+0x8c 0x7159
+0x8d 0x71d5
+0x8e 0x733f
+0x8f 0x7e01
+0x90 0x8276
+0x91 0x82d1
+0x92 0x8597
+0x93 0x9060
+0x94 0x925b
+0x95 0x9d1b
+0x96 0x5869
+0x97 0x65bc
+0x98 0x6c5a
+0x99 0x7525
+0x9a 0x51f9
+0x9b 0x592e
+0x9c 0x5965
+0x9d 0x5f80
+0x9e 0x5fdc
+0x9f 0x62bc
+0xa0 0x65fa
+0xa1 0x6a2a
+0xa2 0x6b27
+0xa3 0x6bb4
+0xa4 0x738b
+0xa5 0x7fc1
+0xa6 0x8956
+0xa7 0x9d2c
+0xa8 0x9d0e
+0xa9 0x9ec4
+0xaa 0x5ca1
+0xab 0x6c96
+0xac 0x837b
+0xad 0x5104
+0xae 0x5c4b
+0xaf 0x61b6
+0xb0 0x81c6
+0xb1 0x6876
+0xb2 0x7261
+0xb3 0x4e59
+0xb4 0x4ffa
+0xb5 0x5378
+0xb6 0x6069
+0xb7 0x6e29
+0xb8 0x7a4f
+0xb9 0x97f3
+0xba 0x4e0b
+0xbb 0x5316
+0xbc 0x4eee
+0xbd 0x4f55
+0xbe 0x4f3d
+0xbf 0x4fa1
+0xc0 0x4f73
+0xc1 0x52a0
+0xc2 0x53ef
+0xc3 0x5609
+0xc4 0x590f
+0xc5 0x5ac1
+0xc6 0x5bb6
+0xc7 0x5be1
+0xc8 0x79d1
+0xc9 0x6687
+0xca 0x679c
+0xcb 0x67b6
+0xcc 0x6b4c
+0xcd 0x6cb3
+0xce 0x706b
+0xcf 0x73c2
+0xd0 0x798d
+0xd1 0x79be
+0xd2 0x7a3c
+0xd3 0x7b87
+0xd4 0x82b1
+0xd5 0x82db
+0xd6 0x8304
+0xd7 0x8377
+0xd8 0x83ef
+0xd9 0x83d3
+0xda 0x8766
+0xdb 0x8ab2
+0xdc 0x5629
+0xdd 0x8ca8
+0xde 0x8fe6
+0xdf 0x904e
+0xe0 0x971e
+0xe1 0x868a
+0xe2 0x4fc4
+0xe3 0x5ce8
+0xe4 0x6211
+0xe5 0x7259
+0xe6 0x753b
+0xe7 0x81e5
+0xe8 0x82bd
+0xe9 0x86fe
+0xea 0x8cc0
+0xeb 0x96c5
+0xec 0x9913
+0xed 0x99d5
+0xee 0x4ecb
+0xef 0x4f1a
+0xf0 0x89e3
+0xf1 0x56de
+0xf2 0x584a
+0xf3 0x58ca
+0xf4 0x5efb
+0xf5 0x5feb
+0xf6 0x602a
+0xf7 0x6094
+0xf8 0x6062
+0xf9 0x61d0
+0xfa 0x6212
+0xfb 0x62d0
+0xfc 0x6539
+
+DBCSTABLE 188 ;LeadByte = 0x8a
+
+0x40 0x9b41
+0x41 0x6666
+0x42 0x68b0
+0x43 0x6d77
+0x44 0x7070
+0x45 0x754c
+0x46 0x7686
+0x47 0x7d75
+0x48 0x82a5
+0x49 0x87f9
+0x4a 0x958b
+0x4b 0x968e
+0x4c 0x8c9d
+0x4d 0x51f1
+0x4e 0x52be
+0x4f 0x5916
+0x50 0x54b3
+0x51 0x5bb3
+0x52 0x5d16
+0x53 0x6168
+0x54 0x6982
+0x55 0x6daf
+0x56 0x788d
+0x57 0x84cb
+0x58 0x8857
+0x59 0x8a72
+0x5a 0x93a7
+0x5b 0x9ab8
+0x5c 0x6d6c
+0x5d 0x99a8
+0x5e 0x86d9
+0x5f 0x57a3
+0x60 0x67ff
+0x61 0x86ce
+0x62 0x920e
+0x63 0x5283
+0x64 0x5687
+0x65 0x5404
+0x66 0x5ed3
+0x67 0x62e1
+0x68 0x64b9
+0x69 0x683c
+0x6a 0x6838
+0x6b 0x6bbb
+0x6c 0x7372
+0x6d 0x78ba
+0x6e 0x7a6b
+0x6f 0x899a
+0x70 0x89d2
+0x71 0x8d6b
+0x72 0x8f03
+0x73 0x90ed
+0x74 0x95a3
+0x75 0x9694
+0x76 0x9769
+0x77 0x5b66
+0x78 0x5cb3
+0x79 0x697d
+0x7a 0x984d
+0x7b 0x984e
+0x7c 0x639b
+0x7d 0x7b20
+0x7e 0x6a2b
+0x80 0x6a7f
+0x81 0x68b6
+0x82 0x9c0d
+0x83 0x6f5f
+0x84 0x5272
+0x85 0x559d
+0x86 0x6070
+0x87 0x62ec
+0x88 0x6d3b
+0x89 0x6e07
+0x8a 0x6ed1
+0x8b 0x845b
+0x8c 0x8910
+0x8d 0x8f44
+0x8e 0x4e14
+0x8f 0x9c39
+0x90 0x53f6
+0x91 0x691b
+0x92 0x6a3a
+0x93 0x9784
+0x94 0x682a
+0x95 0x515c
+0x96 0x7ac3
+0x97 0x84b2
+0x98 0x91dc
+0x99 0x938c
+0x9a 0x565b
+0x9b 0x9d28
+0x9c 0x6822
+0x9d 0x8305
+0x9e 0x8431
+0x9f 0x7ca5
+0xa0 0x5208
+0xa1 0x82c5
+0xa2 0x74e6
+0xa3 0x4e7e
+0xa4 0x4f83
+0xa5 0x51a0
+0xa6 0x5bd2
+0xa7 0x520a
+0xa8 0x52d8
+0xa9 0x52e7
+0xaa 0x5dfb
+0xab 0x559a
+0xac 0x582a
+0xad 0x59e6
+0xae 0x5b8c
+0xaf 0x5b98
+0xb0 0x5bdb
+0xb1 0x5e72
+0xb2 0x5e79
+0xb3 0x60a3
+0xb4 0x611f
+0xb5 0x6163
+0xb6 0x61be
+0xb7 0x63db
+0xb8 0x6562
+0xb9 0x67d1
+0xba 0x6853
+0xbb 0x68fa
+0xbc 0x6b3e
+0xbd 0x6b53
+0xbe 0x6c57
+0xbf 0x6f22
+0xc0 0x6f97
+0xc1 0x6f45
+0xc2 0x74b0
+0xc3 0x7518
+0xc4 0x76e3
+0xc5 0x770b
+0xc6 0x7aff
+0xc7 0x7ba1
+0xc8 0x7c21
+0xc9 0x7de9
+0xca 0x7f36
+0xcb 0x7ff0
+0xcc 0x809d
+0xcd 0x8266
+0xce 0x839e
+0xcf 0x89b3
+0xd0 0x8acc
+0xd1 0x8cab
+0xd2 0x9084
+0xd3 0x9451
+0xd4 0x9593
+0xd5 0x9591
+0xd6 0x95a2
+0xd7 0x9665
+0xd8 0x97d3
+0xd9 0x9928
+0xda 0x8218
+0xdb 0x4e38
+0xdc 0x542b
+0xdd 0x5cb8
+0xde 0x5dcc
+0xdf 0x73a9
+0xe0 0x764c
+0xe1 0x773c
+0xe2 0x5ca9
+0xe3 0x7feb
+0xe4 0x8d0b
+0xe5 0x96c1
+0xe6 0x9811
+0xe7 0x9854
+0xe8 0x9858
+0xe9 0x4f01
+0xea 0x4f0e
+0xeb 0x5371
+0xec 0x559c
+0xed 0x5668
+0xee 0x57fa
+0xef 0x5947
+0xf0 0x5b09
+0xf1 0x5bc4
+0xf2 0x5c90
+0xf3 0x5e0c
+0xf4 0x5e7e
+0xf5 0x5fcc
+0xf6 0x63ee
+0xf7 0x673a
+0xf8 0x65d7
+0xf9 0x65e2
+0xfa 0x671f
+0xfb 0x68cb
+0xfc 0x68c4
+
+DBCSTABLE 188 ;LeadByte = 0x8b
+
+0x40 0x6a5f
+0x41 0x5e30
+0x42 0x6bc5
+0x43 0x6c17
+0x44 0x6c7d
+0x45 0x757f
+0x46 0x7948
+0x47 0x5b63
+0x48 0x7a00
+0x49 0x7d00
+0x4a 0x5fbd
+0x4b 0x898f
+0x4c 0x8a18
+0x4d 0x8cb4
+0x4e 0x8d77
+0x4f 0x8ecc
+0x50 0x8f1d
+0x51 0x98e2
+0x52 0x9a0e
+0x53 0x9b3c
+0x54 0x4e80
+0x55 0x507d
+0x56 0x5100
+0x57 0x5993
+0x58 0x5b9c
+0x59 0x622f
+0x5a 0x6280
+0x5b 0x64ec
+0x5c 0x6b3a
+0x5d 0x72a0
+0x5e 0x7591
+0x5f 0x7947
+0x60 0x7fa9
+0x61 0x87fb
+0x62 0x8abc
+0x63 0x8b70
+0x64 0x63ac
+0x65 0x83ca
+0x66 0x97a0
+0x67 0x5409
+0x68 0x5403
+0x69 0x55ab
+0x6a 0x6854
+0x6b 0x6a58
+0x6c 0x8a70
+0x6d 0x7827
+0x6e 0x6775
+0x6f 0x9ecd
+0x70 0x5374
+0x71 0x5ba2
+0x72 0x811a
+0x73 0x8650
+0x74 0x9006
+0x75 0x4e18
+0x76 0x4e45
+0x77 0x4ec7
+0x78 0x4f11
+0x79 0x53ca
+0x7a 0x5438
+0x7b 0x5bae
+0x7c 0x5f13
+0x7d 0x6025
+0x7e 0x6551
+0x80 0x673d
+0x81 0x6c42
+0x82 0x6c72
+0x83 0x6ce3
+0x84 0x7078
+0x85 0x7403
+0x86 0x7a76
+0x87 0x7aae
+0x88 0x7b08
+0x89 0x7d1a
+0x8a 0x7cfe
+0x8b 0x7d66
+0x8c 0x65e7
+0x8d 0x725b
+0x8e 0x53bb
+0x8f 0x5c45
+0x90 0x5de8
+0x91 0x62d2
+0x92 0x62e0
+0x93 0x6319
+0x94 0x6e20
+0x95 0x865a
+0x96 0x8a31
+0x97 0x8ddd
+0x98 0x92f8
+0x99 0x6f01
+0x9a 0x79a6
+0x9b 0x9b5a
+0x9c 0x4ea8
+0x9d 0x4eab
+0x9e 0x4eac
+0x9f 0x4f9b
+0xa0 0x4fa0
+0xa1 0x50d1
+0xa2 0x5147
+0xa3 0x7af6
+0xa4 0x5171
+0xa5 0x51f6
+0xa6 0x5354
+0xa7 0x5321
+0xa8 0x537f
+0xa9 0x53eb
+0xaa 0x55ac
+0xab 0x5883
+0xac 0x5ce1
+0xad 0x5f37
+0xae 0x5f4a
+0xaf 0x602f
+0xb0 0x6050
+0xb1 0x606d
+0xb2 0x631f
+0xb3 0x6559
+0xb4 0x6a4b
+0xb5 0x6cc1
+0xb6 0x72c2
+0xb7 0x72ed
+0xb8 0x77ef
+0xb9 0x80f8
+0xba 0x8105
+0xbb 0x8208
+0xbc 0x854e
+0xbd 0x90f7
+0xbe 0x93e1
+0xbf 0x97ff
+0xc0 0x9957
+0xc1 0x9a5a
+0xc2 0x4ef0
+0xc3 0x51dd
+0xc4 0x5c2d
+0xc5 0x6681
+0xc6 0x696d
+0xc7 0x5c40
+0xc8 0x66f2
+0xc9 0x6975
+0xca 0x7389
+0xcb 0x6850
+0xcc 0x7c81
+0xcd 0x50c5
+0xce 0x52e4
+0xcf 0x5747
+0xd0 0x5dfe
+0xd1 0x9326
+0xd2 0x65a4
+0xd3 0x6b23
+0xd4 0x6b3d
+0xd5 0x7434
+0xd6 0x7981
+0xd7 0x79bd
+0xd8 0x7b4b
+0xd9 0x7dca
+0xda 0x82b9
+0xdb 0x83cc
+0xdc 0x887f
+0xdd 0x895f
+0xde 0x8b39
+0xdf 0x8fd1
+0xe0 0x91d1
+0xe1 0x541f
+0xe2 0x9280
+0xe3 0x4e5d
+0xe4 0x5036
+0xe5 0x53e5
+0xe6 0x533a
+0xe7 0x72d7
+0xe8 0x7396
+0xe9 0x77e9
+0xea 0x82e6
+0xeb 0x8eaf
+0xec 0x99c6
+0xed 0x99c8
+0xee 0x99d2
+0xef 0x5177
+0xf0 0x611a
+0xf1 0x865e
+0xf2 0x55b0
+0xf3 0x7a7a
+0xf4 0x5076
+0xf5 0x5bd3
+0xf6 0x9047
+0xf7 0x9685
+0xf8 0x4e32
+0xf9 0x6adb
+0xfa 0x91e7
+0xfb 0x5c51
+0xfc 0x5c48
+
+DBCSTABLE 188 ;LeadByte = 0x8c
+
+0x40 0x6398
+0x41 0x7a9f
+0x42 0x6c93
+0x43 0x9774
+0x44 0x8f61
+0x45 0x7aaa
+0x46 0x718a
+0x47 0x9688
+0x48 0x7c82
+0x49 0x6817
+0x4a 0x7e70
+0x4b 0x6851
+0x4c 0x936c
+0x4d 0x52f2
+0x4e 0x541b
+0x4f 0x85ab
+0x50 0x8a13
+0x51 0x7fa4
+0x52 0x8ecd
+0x53 0x90e1
+0x54 0x5366
+0x55 0x8888
+0x56 0x7941
+0x57 0x4fc2
+0x58 0x50be
+0x59 0x5211
+0x5a 0x5144
+0x5b 0x5553
+0x5c 0x572d
+0x5d 0x73ea
+0x5e 0x578b
+0x5f 0x5951
+0x60 0x5f62
+0x61 0x5f84
+0x62 0x6075
+0x63 0x6176
+0x64 0x6167
+0x65 0x61a9
+0x66 0x63b2
+0x67 0x643a
+0x68 0x656c
+0x69 0x666f
+0x6a 0x6842
+0x6b 0x6e13
+0x6c 0x7566
+0x6d 0x7a3d
+0x6e 0x7cfb
+0x6f 0x7d4c
+0x70 0x7d99
+0x71 0x7e4b
+0x72 0x7f6b
+0x73 0x830e
+0x74 0x834a
+0x75 0x86cd
+0x76 0x8a08
+0x77 0x8a63
+0x78 0x8b66
+0x79 0x8efd
+0x7a 0x981a
+0x7b 0x9d8f
+0x7c 0x82b8
+0x7d 0x8fce
+0x7e 0x9be8
+0x80 0x5287
+0x81 0x621f
+0x82 0x6483
+0x83 0x6fc0
+0x84 0x9699
+0x85 0x6841
+0x86 0x5091
+0x87 0x6b20
+0x88 0x6c7a
+0x89 0x6f54
+0x8a 0x7a74
+0x8b 0x7d50
+0x8c 0x8840
+0x8d 0x8a23
+0x8e 0x6708
+0x8f 0x4ef6
+0x90 0x5039
+0x91 0x5026
+0x92 0x5065
+0x93 0x517c
+0x94 0x5238
+0x95 0x5263
+0x96 0x55a7
+0x97 0x570f
+0x98 0x5805
+0x99 0x5acc
+0x9a 0x5efa
+0x9b 0x61b2
+0x9c 0x61f8
+0x9d 0x62f3
+0x9e 0x6372
+0x9f 0x691c
+0xa0 0x6a29
+0xa1 0x727d
+0xa2 0x72ac
+0xa3 0x732e
+0xa4 0x7814
+0xa5 0x786f
+0xa6 0x7d79
+0xa7 0x770c
+0xa8 0x80a9
+0xa9 0x898b
+0xaa 0x8b19
+0xab 0x8ce2
+0xac 0x8ed2
+0xad 0x9063
+0xae 0x9375
+0xaf 0x967a
+0xb0 0x9855
+0xb1 0x9a13
+0xb2 0x9e78
+0xb3 0x5143
+0xb4 0x539f
+0xb5 0x53b3
+0xb6 0x5e7b
+0xb7 0x5f26
+0xb8 0x6e1b
+0xb9 0x6e90
+0xba 0x7384
+0xbb 0x73fe
+0xbc 0x7d43
+0xbd 0x8237
+0xbe 0x8a00
+0xbf 0x8afa
+0xc0 0x9650
+0xc1 0x4e4e
+0xc2 0x500b
+0xc3 0x53e4
+0xc4 0x547c
+0xc5 0x56fa
+0xc6 0x59d1
+0xc7 0x5b64
+0xc8 0x5df1
+0xc9 0x5eab
+0xca 0x5f27
+0xcb 0x6238
+0xcc 0x6545
+0xcd 0x67af
+0xce 0x6e56
+0xcf 0x72d0
+0xd0 0x7cca
+0xd1 0x88b4
+0xd2 0x80a1
+0xd3 0x80e1
+0xd4 0x83f0
+0xd5 0x864e
+0xd6 0x8a87
+0xd7 0x8de8
+0xd8 0x9237
+0xd9 0x96c7
+0xda 0x9867
+0xdb 0x9f13
+0xdc 0x4e94
+0xdd 0x4e92
+0xde 0x4f0d
+0xdf 0x5348
+0xe0 0x5449
+0xe1 0x543e
+0xe2 0x5a2f
+0xe3 0x5f8c
+0xe4 0x5fa1
+0xe5 0x609f
+0xe6 0x68a7
+0xe7 0x6a8e
+0xe8 0x745a
+0xe9 0x7881
+0xea 0x8a9e
+0xeb 0x8aa4
+0xec 0x8b77
+0xed 0x9190
+0xee 0x4e5e
+0xef 0x9bc9
+0xf0 0x4ea4
+0xf1 0x4f7c
+0xf2 0x4faf
+0xf3 0x5019
+0xf4 0x5016
+0xf5 0x5149
+0xf6 0x516c
+0xf7 0x529f
+0xf8 0x52b9
+0xf9 0x52fe
+0xfa 0x539a
+0xfb 0x53e3
+0xfc 0x5411
+
+DBCSTABLE 188 ;LeadByte = 0x8d
+
+0x40 0x540e
+0x41 0x5589
+0x42 0x5751
+0x43 0x57a2
+0x44 0x597d
+0x45 0x5b54
+0x46 0x5b5d
+0x47 0x5b8f
+0x48 0x5de5
+0x49 0x5de7
+0x4a 0x5df7
+0x4b 0x5e78
+0x4c 0x5e83
+0x4d 0x5e9a
+0x4e 0x5eb7
+0x4f 0x5f18
+0x50 0x6052
+0x51 0x614c
+0x52 0x6297
+0x53 0x62d8
+0x54 0x63a7
+0x55 0x653b
... 616755 lines suppressed ...