1413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber/* 2413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber * Copyright (C) 2008 The Android Open Source Project 3413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber * 4413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber * Licensed under the Apache License, Version 2.0 (the "License"); 5413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber * you may not use this file except in compliance with the License. 6413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber * You may obtain a copy of the License at 7413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber * 8413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber * http://www.apache.org/licenses/LICENSE-2.0 9413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber * 10413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber * Unless required by applicable law or agreed to in writing, software 11413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber * distributed under the License is distributed on an "AS IS" BASIS, 12413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber * See the License for the specific language governing permissions and 14413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber * limitations under the License. 15413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber */ 16413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber 17413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber#include "autodetect.h" 18413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber 19112ab3e11b9992814363e0f9c629ef7fba86950bGlenn Kastenstruct CharRange { 20413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber uint16_t first; 21413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber uint16_t last; 22413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber}; 23413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber 24413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber#define ARRAY_SIZE(x) (sizeof(x) / sizeof(*x)) 25413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber 26413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber// generated from http://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP932.TXT 27413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huberstatic const CharRange kShiftJISRanges[] = { 28413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8140, 0x817E }, 29413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8180, 0x81AC }, 30413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x81B8, 0x81BF }, 31413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x81C8, 0x81CE }, 32413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x81DA, 0x81E8 }, 33413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x81F0, 0x81F7 }, 34413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x81FC, 0x81FC }, 35413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x824F, 0x8258 }, 36413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8260, 0x8279 }, 37413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8281, 0x829A }, 38413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x829F, 0x82F1 }, 39413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8340, 0x837E }, 40413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8380, 0x8396 }, 41413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x839F, 0x83B6 }, 42413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x83BF, 0x83D6 }, 43413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8440, 0x8460 }, 44413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8470, 0x847E }, 45413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8480, 0x8491 }, 46413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x849F, 0x84BE }, 47413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8740, 0x875D }, 48413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x875F, 0x8775 }, 49413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x877E, 0x877E }, 50413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8780, 0x879C }, 51413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x889F, 0x88FC }, 52413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8940, 0x897E }, 53413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8980, 0x89FC }, 54413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8A40, 0x8A7E }, 55413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8A80, 0x8AFC }, 56413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8B40, 0x8B7E }, 57413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8B80, 0x8BFC }, 58413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8C40, 0x8C7E }, 59413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8C80, 0x8CFC }, 60413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8D40, 0x8D7E }, 61413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8D80, 0x8DFC }, 62413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8E40, 0x8E7E }, 63413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8E80, 0x8EFC }, 64413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8F40, 0x8F7E }, 65413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8F80, 0x8FFC }, 66413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9040, 0x907E }, 67413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9080, 0x90FC }, 68413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9140, 0x917E }, 69413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9180, 0x91FC }, 70413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9240, 0x927E }, 71413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9280, 0x92FC }, 72413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9340, 0x937E }, 73413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9380, 0x93FC }, 74413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9440, 0x947E }, 75413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9480, 0x94FC }, 76413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9540, 0x957E }, 77413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9580, 0x95FC }, 78413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9640, 0x967E }, 79413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9680, 0x96FC }, 80413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9740, 0x977E }, 81413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9780, 0x97FC }, 82413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9840, 0x9872 }, 83413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x989F, 0x98FC }, 84413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9940, 0x997E }, 85413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9980, 0x99FC }, 86413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9A40, 0x9A7E }, 87413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9A80, 0x9AFC }, 88413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9B40, 0x9B7E }, 89413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9B80, 0x9BFC }, 90413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9C40, 0x9C7E }, 91413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9C80, 0x9CFC }, 92413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9D40, 0x9D7E }, 93413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9D80, 0x9DFC }, 94413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9E40, 0x9E7E }, 95413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9E80, 0x9EFC }, 96413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9F40, 0x9F7E }, 97413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9F80, 0x9FFC }, 98413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE040, 0xE07E }, 99413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE080, 0xE0FC }, 100413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE140, 0xE17E }, 101413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE180, 0xE1FC }, 102413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE240, 0xE27E }, 103413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE280, 0xE2FC }, 104413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE340, 0xE37E }, 105413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE380, 0xE3FC }, 106413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE440, 0xE47E }, 107413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE480, 0xE4FC }, 108413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE540, 0xE57E }, 109413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE580, 0xE5FC }, 110413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE640, 0xE67E }, 111413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE680, 0xE6FC }, 112413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE740, 0xE77E }, 113413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE780, 0xE7FC }, 114413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE840, 0xE87E }, 115413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE880, 0xE8FC }, 116413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE940, 0xE97E }, 117413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE980, 0xE9FC }, 118413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xEA40, 0xEA7E }, 119413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xEA80, 0xEAA4 }, 120413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xED40, 0xED7E }, 121413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xED80, 0xEDFC }, 122413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xEE40, 0xEE7E }, 123413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xEE80, 0xEEEC }, 124413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xEEEF, 0xEEFC }, 125413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xFA40, 0xFA7E }, 126413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xFA80, 0xFAFC }, 127413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xFB40, 0xFB7E }, 128413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xFB80, 0xFBFC }, 129413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xFC40, 0xFC4B }, 130413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber}; 131413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber 132413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber// generated from http://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP936.TXT 133413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huberstatic const CharRange kGBKRanges[] = { 134413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8140, 0x817E }, 135413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8180, 0x81FE }, 136413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8240, 0x827E }, 137413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8280, 0x82FE }, 138413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8340, 0x837E }, 139413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8380, 0x83FE }, 140413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8440, 0x847E }, 141413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8480, 0x84FE }, 142413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8540, 0x857E }, 143413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8580, 0x85FE }, 144413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8640, 0x867E }, 145413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8680, 0x86FE }, 146413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8740, 0x877E }, 147413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8780, 0x87FE }, 148413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8840, 0x887E }, 149413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8880, 0x88FE }, 150413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8940, 0x897E }, 151413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8980, 0x89FE }, 152413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8A40, 0x8A7E }, 153413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8A80, 0x8AFE }, 154413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8B40, 0x8B7E }, 155413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8B80, 0x8BFE }, 156413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8C40, 0x8C7E }, 157413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8C80, 0x8CFE }, 158413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8D40, 0x8D7E }, 159413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8D80, 0x8DFE }, 160413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8E40, 0x8E7E }, 161413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8E80, 0x8EFE }, 162413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8F40, 0x8F7E }, 163413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8F80, 0x8FFE }, 164413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9040, 0x907E }, 165413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9080, 0x90FE }, 166413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9140, 0x917E }, 167413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9180, 0x91FE }, 168413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9240, 0x927E }, 169413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9280, 0x92FE }, 170413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9340, 0x937E }, 171413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9380, 0x93FE }, 172413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9440, 0x947E }, 173413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9480, 0x94FE }, 174413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9540, 0x957E }, 175413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9580, 0x95FE }, 176413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9640, 0x967E }, 177413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9680, 0x96FE }, 178413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9740, 0x977E }, 179413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9780, 0x97FE }, 180413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9840, 0x987E }, 181413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9880, 0x98FE }, 182413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9940, 0x997E }, 183413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9980, 0x99FE }, 184413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9A40, 0x9A7E }, 185413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9A80, 0x9AFE }, 186413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9B40, 0x9B7E }, 187413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9B80, 0x9BFE }, 188413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9C40, 0x9C7E }, 189413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9C80, 0x9CFE }, 190413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9D40, 0x9D7E }, 191413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9D80, 0x9DFE }, 192413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9E40, 0x9E7E }, 193413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9E80, 0x9EFE }, 194413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9F40, 0x9F7E }, 195413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9F80, 0x9FFE }, 196413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA040, 0xA07E }, 197413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA080, 0xA0FE }, 198413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA1A1, 0xA1FE }, 199413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA2A1, 0xA2AA }, 200413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA2B1, 0xA2E2 }, 201413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA2E5, 0xA2EE }, 202413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA2F1, 0xA2FC }, 203413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA3A1, 0xA3FE }, 204413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA4A1, 0xA4F3 }, 205413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA5A1, 0xA5F6 }, 206413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA6A1, 0xA6B8 }, 207413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA6C1, 0xA6D8 }, 208413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA6E0, 0xA6EB }, 209413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA6EE, 0xA6F2 }, 210413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA6F4, 0xA6F5 }, 211413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA7A1, 0xA7C1 }, 212413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA7D1, 0xA7F1 }, 213413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA840, 0xA87E }, 214413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA880, 0xA895 }, 215413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA8A1, 0xA8BB }, 216413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA8BD, 0xA8BE }, 217413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA8C0, 0xA8C0 }, 218413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA8C5, 0xA8E9 }, 219413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA940, 0xA957 }, 220413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA959, 0xA95A }, 221413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA95C, 0xA95C }, 222413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA960, 0xA97E }, 223413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA980, 0xA988 }, 224413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA996, 0xA996 }, 225413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA9A4, 0xA9EF }, 226413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAA40, 0xAA7E }, 227413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAA80, 0xAAA0 }, 228413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAB40, 0xAB7E }, 229413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAB80, 0xABA0 }, 230413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAC40, 0xAC7E }, 231413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAC80, 0xACA0 }, 232413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAD40, 0xAD7E }, 233413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAD80, 0xADA0 }, 234413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAE40, 0xAE7E }, 235413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAE80, 0xAEA0 }, 236413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAF40, 0xAF7E }, 237413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAF80, 0xAFA0 }, 238413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB040, 0xB07E }, 239413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB080, 0xB0FE }, 240413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB140, 0xB17E }, 241413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB180, 0xB1FE }, 242413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB240, 0xB27E }, 243413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB280, 0xB2FE }, 244413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB340, 0xB37E }, 245413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB380, 0xB3FE }, 246413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB440, 0xB47E }, 247413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB480, 0xB4FE }, 248413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB540, 0xB57E }, 249413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB580, 0xB5FE }, 250413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB640, 0xB67E }, 251413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB680, 0xB6FE }, 252413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB740, 0xB77E }, 253413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB780, 0xB7FE }, 254413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB840, 0xB87E }, 255413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB880, 0xB8FE }, 256413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB940, 0xB97E }, 257413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB980, 0xB9FE }, 258413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBA40, 0xBA7E }, 259413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBA80, 0xBAFE }, 260413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBB40, 0xBB7E }, 261413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBB80, 0xBBFE }, 262413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBC40, 0xBC7E }, 263413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBC80, 0xBCFE }, 264413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBD40, 0xBD7E }, 265413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBD80, 0xBDFE }, 266413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBE40, 0xBE7E }, 267413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBE80, 0xBEFE }, 268413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBF40, 0xBF7E }, 269413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBF80, 0xBFFE }, 270413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC040, 0xC07E }, 271413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC080, 0xC0FE }, 272413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC140, 0xC17E }, 273413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC180, 0xC1FE }, 274413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC240, 0xC27E }, 275413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC280, 0xC2FE }, 276413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC340, 0xC37E }, 277413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC380, 0xC3FE }, 278413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC440, 0xC47E }, 279413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC480, 0xC4FE }, 280413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC540, 0xC57E }, 281413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC580, 0xC5FE }, 282413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC640, 0xC67E }, 283413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC680, 0xC6FE }, 284413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC740, 0xC77E }, 285413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC780, 0xC7FE }, 286413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC840, 0xC87E }, 287413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC880, 0xC8FE }, 288413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC940, 0xC97E }, 289413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC980, 0xC9FE }, 290413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xCA40, 0xCA7E }, 291413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xCA80, 0xCAFE }, 292413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xCB40, 0xCB7E }, 293413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xCB80, 0xCBFE }, 294413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xCC40, 0xCC7E }, 295413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xCC80, 0xCCFE }, 296413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xCD40, 0xCD7E }, 297413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xCD80, 0xCDFE }, 298413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xCE40, 0xCE7E }, 299413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xCE80, 0xCEFE }, 300413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xCF40, 0xCF7E }, 301413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xCF80, 0xCFFE }, 302413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD040, 0xD07E }, 303413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD080, 0xD0FE }, 304413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD140, 0xD17E }, 305413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD180, 0xD1FE }, 306413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD240, 0xD27E }, 307413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD280, 0xD2FE }, 308413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD340, 0xD37E }, 309413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD380, 0xD3FE }, 310413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD440, 0xD47E }, 311413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD480, 0xD4FE }, 312413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD540, 0xD57E }, 313413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD580, 0xD5FE }, 314413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD640, 0xD67E }, 315413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD680, 0xD6FE }, 316413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD740, 0xD77E }, 317413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD780, 0xD7F9 }, 318413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD840, 0xD87E }, 319413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD880, 0xD8FE }, 320413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD940, 0xD97E }, 321413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD980, 0xD9FE }, 322413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xDA40, 0xDA7E }, 323413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xDA80, 0xDAFE }, 324413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xDB40, 0xDB7E }, 325413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xDB80, 0xDBFE }, 326413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xDC40, 0xDC7E }, 327413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xDC80, 0xDCFE }, 328413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xDD40, 0xDD7E }, 329413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xDD80, 0xDDFE }, 330413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xDE40, 0xDE7E }, 331413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xDE80, 0xDEFE }, 332413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xDF40, 0xDF7E }, 333413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xDF80, 0xDFFE }, 334413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE040, 0xE07E }, 335413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE080, 0xE0FE }, 336413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE140, 0xE17E }, 337413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE180, 0xE1FE }, 338413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE240, 0xE27E }, 339413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE280, 0xE2FE }, 340413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE340, 0xE37E }, 341413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE380, 0xE3FE }, 342413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE440, 0xE47E }, 343413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE480, 0xE4FE }, 344413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE540, 0xE57E }, 345413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE580, 0xE5FE }, 346413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE640, 0xE67E }, 347413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE680, 0xE6FE }, 348413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE740, 0xE77E }, 349413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE780, 0xE7FE }, 350413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE840, 0xE87E }, 351413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE880, 0xE8FE }, 352413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE940, 0xE97E }, 353413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE980, 0xE9FE }, 354413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xEA40, 0xEA7E }, 355413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xEA80, 0xEAFE }, 356413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xEB40, 0xEB7E }, 357413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xEB80, 0xEBFE }, 358413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xEC40, 0xEC7E }, 359413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xEC80, 0xECFE }, 360413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xED40, 0xED7E }, 361413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xED80, 0xEDFE }, 362413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xEE40, 0xEE7E }, 363413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xEE80, 0xEEFE }, 364413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xEF40, 0xEF7E }, 365413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xEF80, 0xEFFE }, 366413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF040, 0xF07E }, 367413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF080, 0xF0FE }, 368413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF140, 0xF17E }, 369413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF180, 0xF1FE }, 370413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF240, 0xF27E }, 371413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF280, 0xF2FE }, 372413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF340, 0xF37E }, 373413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF380, 0xF3FE }, 374413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF440, 0xF47E }, 375413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF480, 0xF4FE }, 376413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF540, 0xF57E }, 377413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF580, 0xF5FE }, 378413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF640, 0xF67E }, 379413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF680, 0xF6FE }, 380413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF740, 0xF77E }, 381413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF780, 0xF7FE }, 382413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF840, 0xF87E }, 383413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF880, 0xF8A0 }, 384413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF940, 0xF97E }, 385413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF980, 0xF9A0 }, 386413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xFA40, 0xFA7E }, 387413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xFA80, 0xFAA0 }, 388413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xFB40, 0xFB7E }, 389413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xFB80, 0xFBA0 }, 390413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xFC40, 0xFC7E }, 391413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xFC80, 0xFCA0 }, 392413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xFD40, 0xFD7E }, 393413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xFD80, 0xFDA0 }, 394413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xFE40, 0xFE4F }, 395413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber}; 396413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber 397413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber// generated from http://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP949.TXT 398413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huberstatic const CharRange kEUCKRRanges[] = { 399413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8141, 0x815A }, 400413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8161, 0x817A }, 401413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8181, 0x81FE }, 402413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8241, 0x825A }, 403413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8261, 0x827A }, 404413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8281, 0x82FE }, 405413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8341, 0x835A }, 406413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8361, 0x837A }, 407413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8381, 0x83FE }, 408413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8441, 0x845A }, 409413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8461, 0x847A }, 410413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8481, 0x84FE }, 411413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8541, 0x855A }, 412413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8561, 0x857A }, 413413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8581, 0x85FE }, 414413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8641, 0x865A }, 415413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8661, 0x867A }, 416413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8681, 0x86FE }, 417413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8741, 0x875A }, 418413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8761, 0x877A }, 419413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8781, 0x87FE }, 420413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8841, 0x885A }, 421413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8861, 0x887A }, 422413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8881, 0x88FE }, 423413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8941, 0x895A }, 424413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8961, 0x897A }, 425413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8981, 0x89FE }, 426413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8A41, 0x8A5A }, 427413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8A61, 0x8A7A }, 428413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8A81, 0x8AFE }, 429413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8B41, 0x8B5A }, 430413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8B61, 0x8B7A }, 431413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8B81, 0x8BFE }, 432413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8C41, 0x8C5A }, 433413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8C61, 0x8C7A }, 434413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8C81, 0x8CFE }, 435413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8D41, 0x8D5A }, 436413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8D61, 0x8D7A }, 437413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8D81, 0x8DFE }, 438413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8E41, 0x8E5A }, 439413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8E61, 0x8E7A }, 440413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8E81, 0x8EFE }, 441413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8F41, 0x8F5A }, 442413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8F61, 0x8F7A }, 443413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x8F81, 0x8FFE }, 444413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9041, 0x905A }, 445413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9061, 0x907A }, 446413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9081, 0x90FE }, 447413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9141, 0x915A }, 448413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9161, 0x917A }, 449413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9181, 0x91FE }, 450413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9241, 0x925A }, 451413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9261, 0x927A }, 452413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9281, 0x92FE }, 453413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9341, 0x935A }, 454413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9361, 0x937A }, 455413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9381, 0x93FE }, 456413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9441, 0x945A }, 457413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9461, 0x947A }, 458413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9481, 0x94FE }, 459413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9541, 0x955A }, 460413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9561, 0x957A }, 461413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9581, 0x95FE }, 462413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9641, 0x965A }, 463413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9661, 0x967A }, 464413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9681, 0x96FE }, 465413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9741, 0x975A }, 466413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9761, 0x977A }, 467413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9781, 0x97FE }, 468413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9841, 0x985A }, 469413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9861, 0x987A }, 470413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9881, 0x98FE }, 471413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9941, 0x995A }, 472413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9961, 0x997A }, 473413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9981, 0x99FE }, 474413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9A41, 0x9A5A }, 475413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9A61, 0x9A7A }, 476413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9A81, 0x9AFE }, 477413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9B41, 0x9B5A }, 478413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9B61, 0x9B7A }, 479413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9B81, 0x9BFE }, 480413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9C41, 0x9C5A }, 481413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9C61, 0x9C7A }, 482413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9C81, 0x9CFE }, 483413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9D41, 0x9D5A }, 484413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9D61, 0x9D7A }, 485413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9D81, 0x9DFE }, 486413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9E41, 0x9E5A }, 487413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9E61, 0x9E7A }, 488413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9E81, 0x9EFE }, 489413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9F41, 0x9F5A }, 490413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9F61, 0x9F7A }, 491413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0x9F81, 0x9FFE }, 492413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA041, 0xA05A }, 493413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA061, 0xA07A }, 494413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA081, 0xA0FE }, 495413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA141, 0xA15A }, 496413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA161, 0xA17A }, 497413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA181, 0xA1FE }, 498413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA241, 0xA25A }, 499413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA261, 0xA27A }, 500413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA281, 0xA2E7 }, 501413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA341, 0xA35A }, 502413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA361, 0xA37A }, 503413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA381, 0xA3FE }, 504413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA441, 0xA45A }, 505413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA461, 0xA47A }, 506413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA481, 0xA4FE }, 507413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA541, 0xA55A }, 508413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA561, 0xA57A }, 509413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA581, 0xA5AA }, 510413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA5B0, 0xA5B9 }, 511413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA5C1, 0xA5D8 }, 512413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA5E1, 0xA5F8 }, 513413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA641, 0xA65A }, 514413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA661, 0xA67A }, 515413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA681, 0xA6E4 }, 516413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA741, 0xA75A }, 517413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA761, 0xA77A }, 518413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA781, 0xA7EF }, 519413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA841, 0xA85A }, 520413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA861, 0xA87A }, 521413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA881, 0xA8A4 }, 522413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA8A6, 0xA8A6 }, 523413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA8A8, 0xA8AF }, 524413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA8B1, 0xA8FE }, 525413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA941, 0xA95A }, 526413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA961, 0xA97A }, 527413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA981, 0xA9FE }, 528413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAA41, 0xAA5A }, 529413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAA61, 0xAA7A }, 530413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAA81, 0xAAF3 }, 531413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAB41, 0xAB5A }, 532413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAB61, 0xAB7A }, 533413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAB81, 0xABF6 }, 534413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAC41, 0xAC5A }, 535413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAC61, 0xAC7A }, 536413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAC81, 0xACC1 }, 537413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xACD1, 0xACF1 }, 538413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAD41, 0xAD5A }, 539413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAD61, 0xAD7A }, 540413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAD81, 0xADA0 }, 541413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAE41, 0xAE5A }, 542413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAE61, 0xAE7A }, 543413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAE81, 0xAEA0 }, 544413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAF41, 0xAF5A }, 545413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAF61, 0xAF7A }, 546413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAF81, 0xAFA0 }, 547413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB041, 0xB05A }, 548413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB061, 0xB07A }, 549413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB081, 0xB0FE }, 550413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB141, 0xB15A }, 551413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB161, 0xB17A }, 552413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB181, 0xB1FE }, 553413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB241, 0xB25A }, 554413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB261, 0xB27A }, 555413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB281, 0xB2FE }, 556413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB341, 0xB35A }, 557413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB361, 0xB37A }, 558413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB381, 0xB3FE }, 559413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB441, 0xB45A }, 560413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB461, 0xB47A }, 561413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB481, 0xB4FE }, 562413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB541, 0xB55A }, 563413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB561, 0xB57A }, 564413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB581, 0xB5FE }, 565413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB641, 0xB65A }, 566413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB661, 0xB67A }, 567413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB681, 0xB6FE }, 568413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB741, 0xB75A }, 569413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB761, 0xB77A }, 570413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB781, 0xB7FE }, 571413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB841, 0xB85A }, 572413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB861, 0xB87A }, 573413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB881, 0xB8FE }, 574413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB941, 0xB95A }, 575413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB961, 0xB97A }, 576413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB981, 0xB9FE }, 577413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBA41, 0xBA5A }, 578413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBA61, 0xBA7A }, 579413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBA81, 0xBAFE }, 580413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBB41, 0xBB5A }, 581413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBB61, 0xBB7A }, 582413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBB81, 0xBBFE }, 583413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBC41, 0xBC5A }, 584413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBC61, 0xBC7A }, 585413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBC81, 0xBCFE }, 586413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBD41, 0xBD5A }, 587413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBD61, 0xBD7A }, 588413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBD81, 0xBDFE }, 589413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBE41, 0xBE5A }, 590413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBE61, 0xBE7A }, 591413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBE81, 0xBEFE }, 592413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBF41, 0xBF5A }, 593413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBF61, 0xBF7A }, 594413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBF81, 0xBFFE }, 595413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC041, 0xC05A }, 596413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC061, 0xC07A }, 597413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC081, 0xC0FE }, 598413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC141, 0xC15A }, 599413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC161, 0xC17A }, 600413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC181, 0xC1FE }, 601413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC241, 0xC25A }, 602413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC261, 0xC27A }, 603413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC281, 0xC2FE }, 604413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC341, 0xC35A }, 605413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC361, 0xC37A }, 606413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC381, 0xC3FE }, 607413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC441, 0xC45A }, 608413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC461, 0xC47A }, 609413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC481, 0xC4FE }, 610413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC541, 0xC55A }, 611413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC561, 0xC57A }, 612413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC581, 0xC5FE }, 613413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC641, 0xC652 }, 614413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC6A1, 0xC6FE }, 615413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC7A1, 0xC7FE }, 616413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC8A1, 0xC8FE }, 617413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xCAA1, 0xCAFE }, 618413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xCBA1, 0xCBFE }, 619413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xCCA1, 0xCCFE }, 620413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xCDA1, 0xCDFE }, 621413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xCEA1, 0xCEFE }, 622413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xCFA1, 0xCFFE }, 623413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD0A1, 0xD0FE }, 624413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD1A1, 0xD1FE }, 625413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD2A1, 0xD2FE }, 626413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD3A1, 0xD3FE }, 627413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD4A1, 0xD4FE }, 628413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD5A1, 0xD5FE }, 629413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD6A1, 0xD6FE }, 630413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD7A1, 0xD7FE }, 631413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD8A1, 0xD8FE }, 632413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD9A1, 0xD9FE }, 633413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xDAA1, 0xDAFE }, 634413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xDBA1, 0xDBFE }, 635413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xDCA1, 0xDCFE }, 636413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xDDA1, 0xDDFE }, 637413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xDEA1, 0xDEFE }, 638413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xDFA1, 0xDFFE }, 639413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE0A1, 0xE0FE }, 640413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE1A1, 0xE1FE }, 641413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE2A1, 0xE2FE }, 642413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE3A1, 0xE3FE }, 643413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE4A1, 0xE4FE }, 644413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE5A1, 0xE5FE }, 645413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE6A1, 0xE6FE }, 646413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE7A1, 0xE7FE }, 647413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE8A1, 0xE8FE }, 648413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE9A1, 0xE9FE }, 649413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xEAA1, 0xEAFE }, 650413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xEBA1, 0xEBFE }, 651413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xECA1, 0xECFE }, 652413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xEDA1, 0xEDFE }, 653413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xEEA1, 0xEEFE }, 654413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xEFA1, 0xEFFE }, 655413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF0A1, 0xF0FE }, 656413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF1A1, 0xF1FE }, 657413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF2A1, 0xF2FE }, 658413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF3A1, 0xF3FE }, 659413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF4A1, 0xF4FE }, 660413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF5A1, 0xF5FE }, 661413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF6A1, 0xF6FE }, 662413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF7A1, 0xF7FE }, 663413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF8A1, 0xF8FE }, 664413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF9A1, 0xF9FE }, 665413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xFAA1, 0xFAFE }, 666413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xFBA1, 0xFBFE }, 667413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xFCA1, 0xFCFE }, 668413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xFDA1, 0xFDFE }, 669413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber}; 670413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber 671413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber// generated from http://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP950.TXT 672413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huberstatic const CharRange kBig5Ranges[] = { 673413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA140, 0xA17E }, 674413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA1A1, 0xA1FE }, 675413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA240, 0xA27E }, 676413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA2A1, 0xA2FE }, 677413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA340, 0xA37E }, 678413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA3A1, 0xA3BF }, 679413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA3E1, 0xA3E1 }, 680413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA440, 0xA47E }, 681413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA4A1, 0xA4FE }, 682413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA540, 0xA57E }, 683413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA5A1, 0xA5FE }, 684413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA640, 0xA67E }, 685413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA6A1, 0xA6FE }, 686413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA740, 0xA77E }, 687413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA7A1, 0xA7FE }, 688413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA840, 0xA87E }, 689413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA8A1, 0xA8FE }, 690413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA940, 0xA97E }, 691413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xA9A1, 0xA9FE }, 692413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAA40, 0xAA7E }, 693413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAAA1, 0xAAFE }, 694413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAB40, 0xAB7E }, 695413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xABA1, 0xABFE }, 696413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAC40, 0xAC7E }, 697413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xACA1, 0xACFE }, 698413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAD40, 0xAD7E }, 699413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xADA1, 0xADFE }, 700413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAE40, 0xAE7E }, 701413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAEA1, 0xAEFE }, 702413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAF40, 0xAF7E }, 703413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xAFA1, 0xAFFE }, 704413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB040, 0xB07E }, 705413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB0A1, 0xB0FE }, 706413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB140, 0xB17E }, 707413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB1A1, 0xB1FE }, 708413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB240, 0xB27E }, 709413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB2A1, 0xB2FE }, 710413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB340, 0xB37E }, 711413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB3A1, 0xB3FE }, 712413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB440, 0xB47E }, 713413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB4A1, 0xB4FE }, 714413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB540, 0xB57E }, 715413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB5A1, 0xB5FE }, 716413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB640, 0xB67E }, 717413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB6A1, 0xB6FE }, 718413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB740, 0xB77E }, 719413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB7A1, 0xB7FE }, 720413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB840, 0xB87E }, 721413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB8A1, 0xB8FE }, 722413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB940, 0xB97E }, 723413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xB9A1, 0xB9FE }, 724413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBA40, 0xBA7E }, 725413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBAA1, 0xBAFE }, 726413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBB40, 0xBB7E }, 727413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBBA1, 0xBBFE }, 728413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBC40, 0xBC7E }, 729413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBCA1, 0xBCFE }, 730413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBD40, 0xBD7E }, 731413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBDA1, 0xBDFE }, 732413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBE40, 0xBE7E }, 733413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBEA1, 0xBEFE }, 734413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBF40, 0xBF7E }, 735413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xBFA1, 0xBFFE }, 736413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC040, 0xC07E }, 737413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC0A1, 0xC0FE }, 738413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC140, 0xC17E }, 739413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC1A1, 0xC1FE }, 740413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC240, 0xC27E }, 741413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC2A1, 0xC2FE }, 742413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC340, 0xC37E }, 743413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC3A1, 0xC3FE }, 744413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC440, 0xC47E }, 745413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC4A1, 0xC4FE }, 746413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC540, 0xC57E }, 747413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC5A1, 0xC5FE }, 748413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC640, 0xC67E }, 749413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC940, 0xC97E }, 750413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xC9A1, 0xC9FE }, 751413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xCA40, 0xCA7E }, 752413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xCAA1, 0xCAFE }, 753413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xCB40, 0xCB7E }, 754413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xCBA1, 0xCBFE }, 755413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xCC40, 0xCC7E }, 756413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xCCA1, 0xCCFE }, 757413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xCD40, 0xCD7E }, 758413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xCDA1, 0xCDFE }, 759413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xCE40, 0xCE7E }, 760413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xCEA1, 0xCEFE }, 761413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xCF40, 0xCF7E }, 762413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xCFA1, 0xCFFE }, 763413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD040, 0xD07E }, 764413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD0A1, 0xD0FE }, 765413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD140, 0xD17E }, 766413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD1A1, 0xD1FE }, 767413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD240, 0xD27E }, 768413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD2A1, 0xD2FE }, 769413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD340, 0xD37E }, 770413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD3A1, 0xD3FE }, 771413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD440, 0xD47E }, 772413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD4A1, 0xD4FE }, 773413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD540, 0xD57E }, 774413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD5A1, 0xD5FE }, 775413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD640, 0xD67E }, 776413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD6A1, 0xD6FE }, 777413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD740, 0xD77E }, 778413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD7A1, 0xD7FE }, 779413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD840, 0xD87E }, 780413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD8A1, 0xD8FE }, 781413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD940, 0xD97E }, 782413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xD9A1, 0xD9FE }, 783413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xDA40, 0xDA7E }, 784413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xDAA1, 0xDAFE }, 785413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xDB40, 0xDB7E }, 786413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xDBA1, 0xDBFE }, 787413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xDC40, 0xDC7E }, 788413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xDCA1, 0xDCFE }, 789413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xDD40, 0xDD7E }, 790413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xDDA1, 0xDDFE }, 791413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xDE40, 0xDE7E }, 792413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xDEA1, 0xDEFE }, 793413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xDF40, 0xDF7E }, 794413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xDFA1, 0xDFFE }, 795413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE040, 0xE07E }, 796413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE0A1, 0xE0FE }, 797413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE140, 0xE17E }, 798413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE1A1, 0xE1FE }, 799413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE240, 0xE27E }, 800413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE2A1, 0xE2FE }, 801413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE340, 0xE37E }, 802413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE3A1, 0xE3FE }, 803413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE440, 0xE47E }, 804413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE4A1, 0xE4FE }, 805413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE540, 0xE57E }, 806413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE5A1, 0xE5FE }, 807413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE640, 0xE67E }, 808413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE6A1, 0xE6FE }, 809413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE740, 0xE77E }, 810413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE7A1, 0xE7FE }, 811413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE840, 0xE87E }, 812413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE8A1, 0xE8FE }, 813413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE940, 0xE97E }, 814413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xE9A1, 0xE9FE }, 815413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xEA40, 0xEA7E }, 816413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xEAA1, 0xEAFE }, 817413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xEB40, 0xEB7E }, 818413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xEBA1, 0xEBFE }, 819413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xEC40, 0xEC7E }, 820413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xECA1, 0xECFE }, 821413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xED40, 0xED7E }, 822413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xEDA1, 0xEDFE }, 823413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xEE40, 0xEE7E }, 824413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xEEA1, 0xEEFE }, 825413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xEF40, 0xEF7E }, 826413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xEFA1, 0xEFFE }, 827413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF040, 0xF07E }, 828413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF0A1, 0xF0FE }, 829413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF140, 0xF17E }, 830413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF1A1, 0xF1FE }, 831413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF240, 0xF27E }, 832413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF2A1, 0xF2FE }, 833413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF340, 0xF37E }, 834413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF3A1, 0xF3FE }, 835413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF440, 0xF47E }, 836413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF4A1, 0xF4FE }, 837413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF540, 0xF57E }, 838413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF5A1, 0xF5FE }, 839413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF640, 0xF67E }, 840413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF6A1, 0xF6FE }, 841413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF740, 0xF77E }, 842413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF7A1, 0xF7FE }, 843413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF840, 0xF87E }, 844413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF8A1, 0xF8FE }, 845413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF940, 0xF97E }, 846413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber { 0xF9A1, 0xF9FE }, 847413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber}; 848413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber 849413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huberstatic bool charMatchesEncoding(int ch, const CharRange* encodingRanges, int rangeCount) { 850413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber // Use binary search to see if the character is contained in the encoding 851413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber int low = 0; 852413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber int high = rangeCount; 853413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber 854413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber while (low < high) { 855413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber int i = (low + high) / 2; 856413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber const CharRange* range = &encodingRanges[i]; 857413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber if (ch >= range->first && ch <= range->last) 858413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber return true; 859413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber if (ch > range->last) 860413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber low = i + 1; 861413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber else 862413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber high = i; 863413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber } 864413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber 865413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber return false; 866413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber} 867413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber 868413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huberextern uint32_t findPossibleEncodings(int ch) 869413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber{ 870413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber // ASCII matches everything 871413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber if (ch < 256) return kEncodingAll; 872413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber 873413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber int result = kEncodingNone; 874413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber 875413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber if (charMatchesEncoding(ch, kShiftJISRanges, ARRAY_SIZE(kShiftJISRanges))) 876413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber result |= kEncodingShiftJIS; 877413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber if (charMatchesEncoding(ch, kGBKRanges, ARRAY_SIZE(kGBKRanges))) 878413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber result |= kEncodingGBK; 879413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber if (charMatchesEncoding(ch, kBig5Ranges, ARRAY_SIZE(kBig5Ranges))) 880413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber result |= kEncodingBig5; 881413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber if (charMatchesEncoding(ch, kEUCKRRanges, ARRAY_SIZE(kEUCKRRanges))) 882413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber result |= kEncodingEUCKR; 883413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber 884413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber return result; 885413f523afe96aff02d2b0a7459127b8f67b2b43cAndreas Huber} 886