idnits 2.17.1 draft-ietf-idn-nameprep-03.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Looks like you're using RFC 2026 boilerplate. This must be updated to follow RFC 3978/3979, as updated by RFC 4748. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- ** Missing expiration date. The document expiration date should appear on the first and last page. ** The document seems to lack a 1id_guidelines paragraph about the list of current Internet-Drafts. ** The document seems to lack a 1id_guidelines paragraph about the list of Shadow Directories. ** The document is more than 15 pages and seems to lack a Table of Contents. == No 'Intended status' indicated for this document; assuming Proposed Standard == The page length should not exceed 58 lines per page, but there was 1 longer page, the longest (page 1) being 2032 lines Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an Authors' Addresses Section. ** The document seems to lack separate sections for Informative/Normative References. All references will be assumed normative when checking for downward references. ** There are 5 instances of too long lines in the document, the longest one being 4 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The document seems to lack the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords. (The document does seem to have the reference to RFC 2119 which the ID-Checklist requires). -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- Couldn't find a document date in the document -- date freshness check skipped. Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Missing Reference: 'URI' is mentioned on line 237, but not defined == Missing Reference: 'ASCII' is mentioned on line 246, but not defined == Missing Reference: 'CONTROL CHARACTERS' is mentioned on line 278, but not defined == Missing Reference: 'PRIVATE USE' is mentioned on line 289, but not defined == Missing Reference: 'PLANE 0' is mentioned on line 287, but not defined == Missing Reference: 'PLANE 15' is mentioned on line 288, but not defined == Missing Reference: 'PLANE 16' is mentioned on line 289, but not defined == Missing Reference: 'SURROGATE CODES' is mentioned on line 329, but not defined == Missing Reference: 'IDNrev' is mentioned on line 387, but not defined == Missing Reference: 'IDNComp' is mentioned on line 650, but not defined == Unused Reference: 'IDNRev' is defined on line 554, but no explicit reference was found in the text == Unused Reference: 'Normalize' is defined on line 561, but no explicit reference was found in the text == Unused Reference: 'RFC2396' is defined on line 567, but no explicit reference was found in the text == Unused Reference: 'RFC2732' is defined on line 570, but no explicit reference was found in the text -- Possible downref: Non-RFC (?) normative reference: ref. 'CharModel' -- Possible downref: Non-RFC (?) normative reference: ref. 'Glossary' -- Possible downref: Normative reference to a draft: ref. 'IDNReq' -- Possible downref: Normative reference to a draft: ref. 'IDNRev' -- Possible downref: Non-RFC (?) normative reference: ref. 'ISO10646' == Outdated reference: A later version (-04) exists of draft-duerst-i18n-norm-03 -- Possible downref: Normative reference to a draft: ref. 'Normalize' ** Obsolete normative reference: RFC 2396 (Obsoleted by RFC 3986) ** Obsolete normative reference: RFC 2732 (Obsoleted by RFC 3986) -- Possible downref: Non-RFC (?) normative reference: ref. 'Unicode3' -- Duplicate reference: RFC2732, mentioned in 'URIs', was also mentioned in 'RFC2732'. ** Obsolete normative reference: RFC 2732 (ref. 'URIs') (Obsoleted by RFC 3986) -- Possible downref: Non-RFC (?) normative reference: ref. 'UTR15' -- Possible downref: Non-RFC (?) normative reference: ref. 'UTR21' Summary: 11 errors (**), 0 flaws (~~), 18 warnings (==), 12 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 Internet Draft Paul Hoffman 2 draft-ietf-idn-nameprep-03.txt IMC & VPNC 3 February 24, 2001 Marc Blanchet 4 Expires in six months ViaGenie 6 Preparation of Internationalized Host Names 8 Status of this memo 10 This document is an Internet-Draft and is in full conformance with all 11 provisions of Section 10 of RFC2026. 13 Internet-Drafts are working documents of the Internet Engineering Task 14 Force (IETF), its areas, and its working groups. Note that other groups 15 may also distribute working documents as Internet-Drafts. 17 Internet-Drafts are draft documents valid for a maximum of six months 18 and may be updated, replaced, or obsoleted by other documents at any 19 time. It is inappropriate to use Internet-Drafts as reference material 20 or to cite them other than as "work in progress." 22 To view the list Internet-Draft Shadow Directories, see 23 http://www.ietf.org/shadow.html. 25 Abstract 27 This document describes how to prepare internationalized host names for 28 use in the DNS. The steps include: 29 - mapping characters to other characters, such as to change their case 30 - normalizing the characters 31 - excluding characters that are prohibited from appearing in 32 internationalized host names 33 This document does not specify a wire protocol. This preparation should 34 be done before the DNS request. 36 1. Introduction 38 When expanding today's DNS to include internationalized host names, 39 those new names will be handled in many parts of the DNS. The 40 Internationalized Domain Name (IDN) Working Group's requirements 41 document [IDNReq] describes a framework for domain name handling as well 42 as requirements for the new names. 44 A user can enter a domain name into an application program in a myriad 45 of fashions. Depending on the input method, the characters entered in 46 the domain name may or may not be those that are allowed in 47 internationalized host names. Thus, there must be a way to normalized 48 the user's input before the name is resolved in the DNS. 50 It is a design goal of this document to allow users to enter host names 51 in applications and have the highest chance of getting the name correct. 52 Another, often conflicting, design goal is to allow as wide of a range 53 of characters as possible to be allowed in host names. The user should 54 not be limited to only entering exactly the characters that might have 55 been used, but to instead be able to enter characters that unambiguously 56 normalize to characters in the desired host name. Although it would be 57 easy to use the process in this step to "correct" perceived mis-features 58 or bugs in the current character standards, this document expressly does 59 not do so. 61 This document describes the steps needed to convert a name part from one 62 that is entered by the user to one that can be used in the DNS. 64 Within a fully-qualified domain name, some labels may be 65 internationalized, while others are not. This specification should be 66 applied to all internationalized labels. An application must be able to 67 recognize which part is internationalized; the method for such 68 recognition is outside of the scope of this document. Note that this 69 specification is harmless to the non-internationalized labels: when the 70 steps described here are applied to non-internationalized labels, the 71 label will not change. 73 1.1 Terminology 75 The key words "MUST", "SHALL", "REQUIRED", "SHOULD", "RECOMMENDED", and 76 "MAY" in this document are to be interpreted as described in RFC 2119 77 [RFC2119]. 79 Examples in this document use the notation for code points and names 80 from the Unicode Standard [Unicode3] and ISO/IEC 10646 [ISO10646]. For 81 example, the letter "a" may be represented as either "U+0061" or "LATIN 82 SMALL LETTER A". In the lists of prohibited characters, the "U+" is left 83 off to make the lists easier to read. The names of character ranges are 84 shown in square brackets (such as "[SYMBOLS]") and do not come from the 85 standards. 87 Note: A glossary of terms used in Unicode and ISO/IEC 10646 can be found 88 in [Glossary]. Information on the 10646/Unicode character model can be 89 found in [CharModel]. 91 2. Preparation Overview 93 The steps for preparing names are: 95 1) Input from the application service interface -- This can be done in 96 many ways and is not specified in this document 98 2) Map -- For each character in the input, check if it has a mapping 99 and, if so, replace it with its mapping. The mappings are a combination 100 of folding uppercase characters to lowercase and hyphen mapping. This is 101 described in Section 4. 103 3) Normalize -- Normalize the characters. This is described in Section 104 5. 106 4) Look for prohibited output -- Check for any characters that are not 107 allowed in the output. If any are found, return an error to the 108 application service interface. This is described in Section 6. 110 5) Resolution of the prepared name -- This must be specified in a 111 different IDN document. 113 The above steps MUST be performed in the order given in order to comply 114 with this specification. 116 The steps in this document have associated tables in the document. The 117 tables are derived from outside sources, and the derivation is briefly 118 described in the document. Although a great deal of effort has gone into 119 preparing the tables, there is a chance that the tables do not correctly 120 reflect the outside sources. Regardless of whether or not the tables 121 differ from the sources, implementations MUST use the tables in this 122 document for their processing. That is, if there is an error in the 123 tables, the tables must still be used. Future versions of this document 124 may include corrections and additions to the tables. 126 3. Mapping 128 Each character in the input stream is checked against the mapping table. 129 The mapping table can be found in Appendix E of this document. That 130 table includes all the steps described in the subsections below. 132 The mappings can be one-to-none, one-to-one, or one-to-many. That is, 133 some characters may be eliminated or replaced by more than one 134 character, and the output of this step might be shorter or longer than 135 the input. Because of this, an application MUST be prepared to receive a 136 longer or shorter string than the one input in the nameprep algorithm. 138 Rationale: Characters that are not wanted in internationalized name 139 parts can either be mapped to nothing in the mapping step, or cause an 140 error in the prohibition step. The general guideline used to pick 141 between the two outcomes was that removing alphabetic, non-protocol 142 characters be done in the mapping step, but all other removals be done 143 in the prohibition step. This allows for simple linguistic errors on the 144 part of an input mechanism to be caught in the mapping step, but to not 145 hide serious errors such as entering protocol characters or invisible 146 characters from the user. 148 3.1 Case mapping 150 The input string is case folded according to [UTR21]. For most 151 characters, this is the same thing as changing the input character to a 152 lowercase character. For some characters, however, more complex 153 transformations occur. The mapping table in Appendix E is derived by 154 applying the rules for equivalence classes from [UTR21]. 156 Rationale: This step could have been "change all lowercase characters 157 into uppercase characters". However, the upper-to-lower folding was 158 chosen because most users of the Internet today enter host names in 159 lowercase. 161 3.2 Additional folding mappings 163 There are some characters that do not have mappings in [UTR21] but still 164 need processing. These characters include a few Greek characters and 165 many symbols that contain Latin characters. The list of characters to 166 add to the mapping table were determined by the following algorithm: 168 b = NormalizeWithKC(Fold(a)); 169 c = NormalizeWithKC(Fold(b)); 170 if c is not the same as b, add a mapping for "a to c". 172 Because NormalizeWithKC(Fold(c)) always equals c, the table is stable 173 from that point on. 175 3.3 Mapped out 177 The following characters are simply deleted from the input (that is, 178 they are mapped to nothing) because their presence or absence should not 179 make two domain names different. 181 Some characters are only useful in line-based text, and are otherwise 182 invisible and ignored. 184 00AD; SOFT HYPHEN 185 1806; MONGOLIAN TODO SOFT HYPHEN 186 200B; ZERO WIDTH SPACE 187 FEFF; ZERO WIDTH NO-BREAK SPACE 189 Variation selectors and cursive connectors select different glyphs, but 190 do not bear semantics. 192 180B; MONGOLIAN FREE VARIATION SELECTOR ONE 193 180C; MONGOLIAN FREE VARIATION SELECTOR TWO 194 180D; MONGOLIAN FREE VARIATION SELECTOR THREE 195 200C; ZERO WIDTH NON-JOINER 196 200D; ZERO WIDTH JOINER 198 4. Normalization 200 The output of the mapping step is normalized using form KC, as described 201 in [UTR15]. Using form KC instead of form C causes many characters that 202 are identical or near-identical to be converted into a single character. 203 Note that this specification refers to a specific version of [UTR15]. If 204 a later version of [UTR15] changes the algorithm used for normalizing, 205 that later version MUST NOT be used with this specification. Note that 206 it is likely that this specification will be revised if UTR15 is 207 changed, but until that happens, only the specified version of [UTR15] 208 must be used. 210 5. Prohibited Output 212 Before the text can be emitted, it must be checked for prohibited code 213 points. There is a variety of prohibited code points, as described in 214 this section. 216 One of the goals of IDN is to allow the widest possible set of host 217 names as long as those host names do not cause other problems, such as 218 conflict with other standards. Specifically, experience with current DNS 219 names have shown that there is a desire for host names that include 220 personal names, company names, and spoken phrases. A goal of this 221 section is to prohibit as few characters that might be used in these 222 contexts as possible. 224 The collected list of prohibited code points can be found in Appendix F 225 of this document. The list in Appendix F MUST be used by implementations 226 of this specification. If there are any discrepancies between the list 227 in Appendix F and subsections below, the list Appendix F always takes 228 precedence. 230 Some code points listed in one section would also appear in other 231 sections. Each code point is only listed once in the table in Appendix 232 F. 234 5.1 Currently-prohibited ASCII characters 236 Some of the ASCII characters that are currently prohibited in host names 237 by [STD13] are also used in protocol elements such as URIs [URI]. The other 238 characters in the range U+0000 to U+007F that are not currently allowed 239 are also prohibited in host name parts to reserve them for future use in 240 protocol elements. 242 0000-002C; [ASCII] 243 002E-002F; [ASCII] 244 003A-0040; [ASCII] 245 005B-0060; [ASCII] 246 007B-007F; [ASCII] 248 5.2 Space characters 250 Space characters would make visual transcription of URLs nearly 251 impossible and could lead to user entry errors in many ways. 253 0020; SPACE 254 00A0; NO-BREAK SPACE 255 2000; EN QUAD 256 2001; EM QUAD 257 2002; EN SPACE 258 2003; EM SPACE 259 2004; THREE-PER-EM SPACE 260 2005; FOUR-PER-EM SPACE 261 2006; SIX-PER-EM SPACE 262 2007; FIGURE SPACE 263 2008; PUNCTUATION SPACE 264 2009; THIN SPACE 265 200A; HAIR SPACE 266 202F; NARROW NO-BREAK SPACE 267 3000; IDEOGRAPHIC SPACE 268 1680; OGHAM SPACE MARK 269 200B; ZERO WIDTH SPACE 271 5.3 Control characters 273 Control characters cannot be seen and can cause unpredictable results 274 when displayed. 276 0000-001F; [CONTROL CHARACTERS] 277 007F; DELETE 278 0080-009F; [CONTROL CHARACTERS] 279 2028; LINE SEPARATOR 280 2029; PARAGRAPH SEPARATOR 282 5.4 Private use and replacement characters 284 Because private-use characters do not have defined meanings, they are 285 prohibited. The private-use characters are: 287 E000-F8FF; [PRIVATE USE, PLANE 0] 288 F0000-FFFFD; [PRIVATE USE, PLANE 15] 289 100000-10FFFD; [PRIVATE USE, PLANE 16] 291 The replacement character (U+FFFD) has no known semantic definition in a 292 name, and is often displayed by renderers to indicate "there would be some 293 character here, but it cannot be rendered". For example, on a computer 294 with no Asian fonts, a name with three katakana characters might be 295 rendered with three replacement characters. 297 FFFD; REPLACEMENT CHARACTER 299 5.5 Non-character code points 301 Non-character code points are code points that have been assigned in 302 ISO/IEC 10646 but are not characters. Because they are already assigned, 303 they are guaranteed not to later change into characters. 305 FFFE-FFFF; [NONCHARACTER CODE POINTS] 306 1FFFE-1FFFF; [NONCHARACTER CODE POINTS] 307 2FFFE-2FFFF; [NONCHARACTER CODE POINTS] 308 3FFFE-3FFFF; [NONCHARACTER CODE POINTS] 309 4FFFE-4FFFF; [NONCHARACTER CODE POINTS] 310 5FFFE-5FFFF; [NONCHARACTER CODE POINTS] 311 6FFFE-6FFFF; [NONCHARACTER CODE POINTS] 312 7FFFE-7FFFF; [NONCHARACTER CODE POINTS] 313 8FFFE-8FFFF; [NONCHARACTER CODE POINTS] 314 9FFFE-9FFFF; [NONCHARACTER CODE POINTS] 315 AFFFE-AFFFF; [NONCHARACTER CODE POINTS] 316 BFFFE-BFFFF; [NONCHARACTER CODE POINTS] 317 CFFFE-CFFFF; [NONCHARACTER CODE POINTS] 318 DFFFE-DFFFF; [NONCHARACTER CODE POINTS] 319 EFFFE-EFFFF; [NONCHARACTER CODE POINTS] 320 FFFFE-FFFFF; [NONCHARACTER CODE POINTS] 321 10FFFE-10FFFF; [NONCHARACTER CODE POINTS] 323 5.6 Surrogate codes 325 The following code points are permanently reserved for use as surrogate 326 code values in the UTF-16 encoding, will never be assigned to 327 characters, and are therefore prohibited: 329 D800-DFFF; [SURROGATE CODES] 331 5.7 Inappropriate for plain text 333 The following characters should not appear in regular text. 335 FFF9; INTERLINEAR ANNOTATION ANCHOR 336 FFFA; INTERLINEAR ANNOTATION SEPARATOR 337 FFFB; INTERLINEAR ANNOTATION TERMINATOR 338 FFFC; OBJECT REPLACEMENT CHARACTER 340 5.8 Inappropriate for domain names 342 The ideographic description characters allow different sequences of 343 characters to be rendered the same way, which makes them inappropriate 344 for host names that must have a single canonical order. 346 2FF0-2FFF; [IDEOGRAPHIC DESCRIPTION CHARACTERS] 348 5.9 Change display properties 350 The following characters, some of which are deprecated in ISO/IEC 10646, 351 can cause changes in display or the order in which characters appear 352 when rendered. 354 200E; LEFT-TO-RIGHT MARK 355 200F; RIGHT-TO-LEFT MARK 356 202A; LEFT-TO-RIGHT EMBEDDING 357 202B; RIGHT-TO-LEFT EMBEDDING 358 202C; POP DIRECTIONAL FORMATTING 359 202D; LEFT-TO-RIGHT OVERRIDE 360 202E; RIGHT-TO-LEFT OVERRIDE 361 206A; INHIBIT SYMMETRIC SWAPPING 362 206B; ACTIVATE SYMMETRIC SWAPPING 363 206C; INHIBIT ARABIC FORM SHAPING 364 206D; ACTIVATE ARABIC FORM SHAPING 365 206E; NATIONAL DIGIT SHAPES 366 206F; NOMINAL DIGIT SHAPES 368 5.10 Inappropriate characters from common input mechanisms 370 U+3002 is used as if it were U+002E in many input mechanisms, 371 particularly in Asia. This prohibition allows input mechanisms to safely 372 map U+3002 to U+002E before doing nameprep without worrying about 373 preventing users from accessing legitimate host name parts. 375 3002; IDEOGRAPHIC FULL STOP 377 6. Unassigned Code Points 379 All code points not assigned in ISO/IEC 10646 are called "unassigned 380 code points". Authoritative name servers MUST NOT have internationalized 381 name parts that contain any unassigned code points. DNS requests MAY 382 contain name parts that contain unassigned code points. Note that this 383 is the only part of this document where the requirements for queries 384 differs from the requirements for names in DNS zones. 386 Using two different policies for where unassigned code points can appear 387 in the DNS prevents the need for versioning the IDN protocol [IDNrev]. 388 This is very useful since it makes the overall processing simpler and do 389 not impose a "protocol" to handle versioning. It is expected that ISO/IEC 390 10646 will be updated fairly frequently; recently, it has happened 391 approximately once a year. Each time a new version of ISO/IEC 10646 appears, 392 a new version of this document can be created. Some end users will want 393 to use the new code points as soon as they are defined. 395 The list of unassigned code points can be found in Appendix G of this 396 document. The list in Appendix G MUST be used by implementations of this 397 specification. If there are any discrepancies between the list in 398 Appendix G and the ISO/IEC 10646 specification, the list Appendix G 399 always takes precedence. 401 Due to the way that versioning is handled in this section, host names 402 that are embedded in structures that cannot be changed (such as the 403 signed parts of digital certificates) MUST NOT have internationalized 404 name parts that contain any unassigned code points. 406 6.1 Categories of code points 408 Each code point in ISO/IEC 10646 can be categorized by how it acts in the 409 process described in earlier sections of this document: 411 AO Code points that may be in the output 413 MN Code points that cannot be in the output because they are 414 mapped to nothing or never appear as output from 415 normalization 417 D Code points that cannot be in the output because they are 418 disallowed in the prohibition step 420 U Unassigned code points 422 A subsequent version of this document that references a newer version of 423 ISO/IEC 10646 with new code points will inherently have some code points 424 move from category U to either D, MN, or AO. For backwards 425 compatibility, no future version of this document will move code points 426 from any other category. That is, no current AO, MN, or D code points 427 will ever change to a different category. 429 Authoritative name servers MUST NOT contain any name that has code 430 points outside of AO for the latest version of this document. That is, 431 they are forbidden to contain any IDN names containing code points from 432 the MN, D, or U categories. 434 Applications creating name queries MUST treat U code points as if they 435 were AO when preparing the name parts according to this document. Those 436 applications MAY optionally have a preprocess that provide stricter 437 checks: treating unassigned code points in the input as errors, or 438 warning the user about the fact that the code point is unassigned in the 439 version of this document that the software is based on; such a choice is 440 a local matter for the software. 442 Non-authoritative DNS servers MAY reject names that contain code points 443 that are in categories MN or D for the version of this document that 444 they implement, but MUST NOT reject names because they contain name 445 parts with code points from category U. 447 6.2 Reasons for difference between authoritative servers and requests 449 Different software using different versions of this document need to 450 interoperate with maximal compatibility. The scheme described in this 451 section (authoritative name servers MUST NOT use unassigned code points, 452 requests MAY include unassigned code points) allows that compatibility 453 without introducing any known security or interoperability issues. 455 The list below shows what happens if a request contains a code point 456 from category U that is allowed in a newer version of this document. The 457 request either resolves to the domain name that was intended, or 458 resolves to no domain at all. In this list, the request comes from an 459 application using version "oldVersion" of this document, the 460 authoritative name server is using version "newVersion" of this 461 document, and the code point X was in category U on oldVersion, and has 462 changed category to AO, MN, or D. There are 3 possible scenarios: 464 1. X becomes AO -- In newVersion, X is in category AO. Because the 465 application passed X through, it gets back correct data from the 466 authoritative name server. There is one exceptional case, where X is a 467 combining mark. 469 The order of combining marks is normalized, so if another combining mark 470 Y has a lower combining class than X then XY will be put in the 471 canonical order YX. (Unassigned code points are never reordered, so this 472 doesn't happen in oldVersion). If the request contains YX, the request 473 will get correct data from the authoritative name server. However, no 474 domain name can be registered with XY, so a request with XY will get a 475 "no such host" error. 477 2. X becomes MN -- In newVersion, X is normalized to code point "nX" and 478 therefore X is now put in category MN. This cannot exist in any domain 479 name, so any request containing X will get back a "no such host" error. 480 Note, however, if the request had contained the letter nX, it would have 481 gotten back correct data. 483 3. X becomes D -- In newVersion, X is in category MN. This cannot exist 484 in any domain name, so any request containing X will get back a "no such 485 host" error. 487 In none of the cases does the request get data for a host name other 488 than the one it actually wanted. 490 The processing in this document is always stable. If a string S is the 491 result of processing on newVersion, then it will remain the same when 492 processed on oldVersion. 494 There is always a way for the application to get the correct data from 495 the authoritative name server. For example, suppose that was 496 unassigned in oldVersion, and that it is assigned in newVersion, but 497 case-folded to . As long as the application supplies strings 498 containing instead of , the correct data will be 499 returned. Because the processing is stable, a different application 500 running newVersion can pass a processed host name to the application 501 running oldVersion. It will only contain , and will return the 502 correct results from the authoritative name server. 504 6.3 Versions of applications and authoritative name servers 506 Another way to see that this versioning system works is to compare what 507 happens when an application uses a newer or older version of this 508 document. 510 Newer application -- Suppose that a application or intermediary DNS 511 server is using version newVersion and the authoritative name server is 512 using version oldVersion. This case is simple: there will be no names on 513 the server that cannot be accessed by the application because the 514 resolver uses a superset of the code points accepted by the server. 516 Newer server -- Suppose that an application or intermediary DNS server 517 is using oldVersion and the authoritative name server is using 518 newVersion. Because the application passed through any unassigned code 519 points, the user can access names on the server that use code points in 520 newVersion. No names on the site can have code points that are 521 unassigned in newVersion, since that is illegal. In this case, the 522 application has to enter the unassigned code points in the correct 523 order, and has to use unassigned code points that would make it through 524 both the mapping and the normalization steps. 526 7. Security Considerations 528 Much of the security of the Internet relies on the DNS. Thus, any change 529 to the characteristics of the DNS can change the security of much of the 530 Internet. 532 Host names are used by users to connect to Internet servers. The 533 security of the Internet would be compromised if a user entering a 534 single internationalized name could be connected to different servers 535 based on different interpretations of the internationalized host name. 537 Current applications may assume that the characters allowed in host 538 names will always be the same as they are in [STD13]. This document 539 vastly increases the number of characters available in host names. Every 540 program that uses "special" characters in conjunction with host names 541 may be vulnerable to attack based on the new characters allowed by this 542 specification. 544 8. References 546 [CharModel] Unicode Technical Report;17, Character Model. 547 . 549 [Glossary] Unicode Glossary, . 551 [IDNReq] Zita Wenzel and James Seng, "Requirements of Internationalized 552 Domain Names", draft-ietf-idn-requirements 554 [IDNRev] Marc Blanchet, "Handling versions of internationalized domain 555 names protocols", draft-ietf-idn-version 557 [ISO10646] ISO/IEC 10646-1:2000. International Standard -- Information 558 technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 559 1: Architecture and Basic Multilingual Plane. 561 [Normalize] Character Normalization in IETF Protocols, 562 draft-duerst-i18n-norm-03 564 [RFC2119] Scott Bradner, "Key words for use in RFCs to Indicate 565 Requirement Levels", March 1997, RFC 2119. 567 [RFC2396] Tim Berners-Lee, et. al., "Uniform Resource Identifiers (URI): 568 Generic Syntax", August 1998, RFC 2396. 570 [RFC2732] Robert Hinden, et. al., Format for Literal IPv6 Addresses in 571 URL's, December 1999, RFC 2732. 573 [STD13] Paul Mockapetris, "Domain names - concepts and facilities" (RFC 574 1034) and "Domain names - implementation and specification" (RFC 1035, 575 STD 13, November 1987. 577 [Unicode3] The Unicode Consortium, "The Unicode Standard -- Version 578 3.0", ISBN 0-201-61633-5. Described at 579 . 581 [URIs] For example: Roy Fielding et. al., "Uniform Resource Identifiers: 582 Generic Syntax", August 1998, RFC 2396; Robert Hinden et. al, "IPv6 583 Literal Addresses in URL's", December 1999, RFC 2732. 585 [UTR15] Mark Davis and Martin Duerst. Unicode Normalization Forms. 586 Unicode Technical Report;15. 587 . 589 [UTR21] Mark Davis. Case Mappings. Unicode Technical Report;21. 590 . 592 A. Acknowledgements 594 Many people from the IETF IDN Working Group and the Unicode Technical 595 Committee contributed ideas that went into the first draft of this 596 document. Mark Davis and Patrik Faltstrom were particularly helpful in 597 some of the ideas, such as the versioning description. 599 The IDN namprep design team made many useful changes to the first 600 draft. That team and its advisors include: 602 Asmus Freytag 603 Cathy Wissink 604 Francois Yergeau 605 James Seng 606 Marc Blanchet 607 Mark Davis 608 Martin Duerst 609 Patrik Faltstrom 610 Paul Hoffman 612 Additional significant improvements were proposed by: 614 Jonathan Rosenne 615 Kent Karlsson 616 Scott Hollenbeck 618 B. Differences Between -02 and -03 Drafts 620 Throughout: Changed "ISO 10646" to "ISO/IEC 10646". Changed "codepoint" 621 to "code point". 623 Abstract: Added last sentence. 625 1: Removed the sentence about [IDNComp] in the first paragraph. 626 Clarified the design goals in the third paragraph. Added new last 627 paragraph about processing name parts. 629 3: Added sentence at the end of the second paragraph about accepting 630 shorter or longer responses. Changed "Design note" to "Rationale". 632 3.1: Revised the first paragraph to make it clearer that the mapping is 633 not simple lowercasing. Changed "Design note" to "Rationale". 635 3.2: Made it clearer that the normalization is with form KC. 637 5: Removed the previous third paragraph, which discussed the DNS service 638 interface. 640 5.1: Added references for URIs. 642 5.4: Changed the sentence about the replacement character to read 643 "...and is often displayed by renderers to indicate...". 645 5.10: Added this section, which prohibits U+3002. 647 6: Removed "yet" from the first sentence. 649 8: Fixed the reference for [IDNReq] and [STD13]. Removed the reference 650 to [IDNComp]. Added the reference for [URIs]. 652 C: Changed wording of the section. 654 E, F, G: Added tags to the beginning and end of the tables. 656 F: Added 3002 (from section 5.10). Added FDD0-FDEF, which were omitted 657 in error. 659 C. IANA Considerations 661 None. 663 D. Author Contact Information 665 Paul Hoffman 666 Internet Mail Consortium and VPN Consortium 667 127 Segre Place 668 Santa Cruz, CA 95060 USA 669 paul.hoffman@imc.org and paul.hoffman@vpnc.org 671 Marc Blanchet 672 Viagenie inc. 673 2875 boul. Laurier, bur. 300 674 Ste-Foy, Quebec, Canada, G1V 2M2 675 Marc.Blanchet@viagenie.qc.ca 677 E. Mapping Table 679 The following is the mapping table from Section 3. The table has three 680 columns: 681 - the character that is mapped from 682 - the zero or more characters that it is mapped to 683 - the reason for the mapping 684 The columns are separated by semicolons. Note that the second column may 685 be empty, or it may have one character, or it may have more than one 686 character, with each character separated by a space. 688 ----- Start Mapping Table ----- 689 0041; 0061; Case map 690 0042; 0062; Case map 691 0043; 0063; Case map 692 0044; 0064; Case map 693 0045; 0065; Case map 694 0046; 0066; Case map 695 0047; 0067; Case map 696 0048; 0068; Case map 697 0049; 0069; Case map 698 004A; 006A; Case map 699 004B; 006B; Case map 700 004C; 006C; Case map 701 004D; 006D; Case map 702 004E; 006E; Case map 703 004F; 006F; Case map 704 0050; 0070; Case map 705 0051; 0071; Case map 706 0052; 0072; Case map 707 0053; 0073; Case map 708 0054; 0074; Case map 709 0055; 0075; Case map 710 0056; 0076; Case map 711 0057; 0077; Case map 712 0058; 0078; Case map 713 0059; 0079; Case map 714 005A; 007A; Case map 715 00AD; ; Map out 716 00B5; 03BC; Case map 717 00C0; 00E0; Case map 718 00C1; 00E1; Case map 719 00C2; 00E2; Case map 720 00C3; 00E3; Case map 721 00C4; 00E4; Case map 722 00C5; 00E5; Case map 723 00C6; 00E6; Case map 724 00C7; 00E7; Case map 725 00C8; 00E8; Case map 726 00C9; 00E9; Case map 727 00CA; 00EA; Case map 728 00CB; 00EB; Case map 729 00CC; 00EC; Case map 730 00CD; 00ED; Case map 731 00CE; 00EE; Case map 732 00CF; 00EF; Case map 733 00D0; 00F0; Case map 734 00D1; 00F1; Case map 735 00D2; 00F2; Case map 736 00D3; 00F3; Case map 737 00D4; 00F4; Case map 738 00D5; 00F5; Case map 739 00D6; 00F6; Case map 740 00D8; 00F8; Case map 741 00D9; 00F9; Case map 742 00DA; 00FA; Case map 743 00DB; 00FB; Case map 744 00DC; 00FC; Case map 745 00DD; 00FD; Case map 746 00DE; 00FE; Case map 747 00DF; 0073 0073; Case map 748 0100; 0101; Case map 749 0102; 0103; Case map 750 0104; 0105; Case map 751 0106; 0107; Case map 752 0108; 0109; Case map 753 010A; 010B; Case map 754 010C; 010D; Case map 755 010E; 010F; Case map 756 0110; 0111; Case map 757 0112; 0113; Case map 758 0114; 0115; Case map 759 0116; 0117; Case map 760 0118; 0119; Case map 761 011A; 011B; Case map 762 011C; 011D; Case map 763 011E; 011F; Case map 764 0120; 0121; Case map 765 0122; 0123; Case map 766 0124; 0125; Case map 767 0126; 0127; Case map 768 0128; 0129; Case map 769 012A; 012B; Case map 770 012C; 012D; Case map 771 012E; 012F; Case map 772 0130; 0069; Case map 773 0131; 0069; Case map 774 0132; 0133; Case map 775 0134; 0135; Case map 776 0136; 0137; Case map 777 0139; 013A; Case map 778 013B; 013C; Case map 779 013D; 013E; Case map 780 013F; 0140; Case map 781 0141; 0142; Case map 782 0143; 0144; Case map 783 0145; 0146; Case map 784 0147; 0148; Case map 785 0149; 02BC 006E; Case map 786 014A; 014B; Case map 787 014C; 014D; Case map 788 014E; 014F; Case map 789 0150; 0151; Case map 790 0152; 0153; Case map 791 0154; 0155; Case map 792 0156; 0157; Case map 793 0158; 0159; Case map 794 015A; 015B; Case map 795 015C; 015D; Case map 796 015E; 015F; Case map 797 0160; 0161; Case map 798 0162; 0163; Case map 799 0164; 0165; Case map 800 0166; 0167; Case map 801 0168; 0169; Case map 802 016A; 016B; Case map 803 016C; 016D; Case map 804 016E; 016F; Case map 805 0170; 0171; Case map 806 0172; 0173; Case map 807 0174; 0175; Case map 808 0176; 0177; Case map 809 0178; 00FF; Case map 810 0179; 017A; Case map 811 017B; 017C; Case map 812 017D; 017E; Case map 813 017F; 0073; Case map 814 0181; 0253; Case map 815 0182; 0183; Case map 816 0184; 0185; Case map 817 0186; 0254; Case map 818 0187; 0188; Case map 819 0189; 0256; Case map 820 018A; 0257; Case map 821 018B; 018C; Case map 822 018E; 01DD; Case map 823 018F; 0259; Case map 824 0190; 025B; Case map 825 0191; 0192; Case map 826 0193; 0260; Case map 827 0194; 0263; Case map 828 0196; 0269; Case map 829 0197; 0268; Case map 830 0198; 0199; Case map 831 019C; 026F; Case map 832 019D; 0272; Case map 833 019F; 0275; Case map 834 01A0; 01A1; Case map 835 01A2; 01A3; Case map 836 01A4; 01A5; Case map 837 01A6; 0280; Case map 838 01A7; 01A8; Case map 839 01A9; 0283; Case map 840 01AC; 01AD; Case map 841 01AE; 0288; Case map 842 01AF; 01B0; Case map 843 01B1; 028A; Case map 844 01B2; 028B; Case map 845 01B3; 01B4; Case map 846 01B5; 01B6; Case map 847 01B7; 0292; Case map 848 01B8; 01B9; Case map 849 01BC; 01BD; Case map 850 01C4; 01C6; Case map 851 01C5; 01C6; Case map 852 01C7; 01C9; Case map 853 01C8; 01C9; Case map 854 01CA; 01CC; Case map 855 01CB; 01CC; Case map 856 01CD; 01CE; Case map 857 01CF; 01D0; Case map 858 01D1; 01D2; Case map 859 01D3; 01D4; Case map 860 01D5; 01D6; Case map 861 01D7; 01D8; Case map 862 01D9; 01DA; Case map 863 01DB; 01DC; Case map 864 01DE; 01DF; Case map 865 01E0; 01E1; Case map 866 01E2; 01E3; Case map 867 01E4; 01E5; Case map 868 01E6; 01E7; Case map 869 01E8; 01E9; Case map 870 01EA; 01EB; Case map 871 01EC; 01ED; Case map 872 01EE; 01EF; Case map 873 01F0; 006A 030C; Case map 874 01F1; 01F3; Case map 875 01F2; 01F3; Case map 876 01F4; 01F5; Case map 877 01F6; 0195; Case map 878 01F7; 01BF; Case map 879 01F8; 01F9; Case map 880 01FA; 01FB; Case map 881 01FC; 01FD; Case map 882 01FE; 01FF; Case map 883 0200; 0201; Case map 884 0202; 0203; Case map 885 0204; 0205; Case map 886 0206; 0207; Case map 887 0208; 0209; Case map 888 020A; 020B; Case map 889 020C; 020D; Case map 890 020E; 020F; Case map 891 0210; 0211; Case map 892 0212; 0213; Case map 893 0214; 0215; Case map 894 0216; 0217; Case map 895 0218; 0219; Case map 896 021A; 021B; Case map 897 021C; 021D; Case map 898 021E; 021F; Case map 899 0222; 0223; Case map 900 0224; 0225; Case map 901 0226; 0227; Case map 902 0228; 0229; Case map 903 022A; 022B; Case map 904 022C; 022D; Case map 905 022E; 022F; Case map 906 0230; 0231; Case map 907 0232; 0233; Case map 908 0345; 03B9; Case map 909 037A; 0020 03B9; Additional folding 910 0386; 03AC; Case map 911 0388; 03AD; Case map 912 0389; 03AE; Case map 913 038A; 03AF; Case map 914 038C; 03CC; Case map 915 038E; 03CD; Case map 916 038F; 03CE; Case map 917 0390; 03B9 0308 0301; Case map 918 0391; 03B1; Case map 919 0392; 03B2; Case map 920 0393; 03B3; Case map 921 0394; 03B4; Case map 922 0395; 03B5; Case map 923 0396; 03B6; Case map 924 0397; 03B7; Case map 925 0398; 03B8; Case map 926 0399; 03B9; Case map 927 039A; 03BA; Case map 928 039B; 03BB; Case map 929 039C; 03BC; Case map 930 039D; 03BD; Case map 931 039E; 03BE; Case map 932 039F; 03BF; Case map 933 03A0; 03C0; Case map 934 03A1; 03C1; Case map 935 03A3; 03C2; Case map 936 03A4; 03C4; Case map 937 03A5; 03C5; Case map 938 03A6; 03C6; Case map 939 03A7; 03C7; Case map 940 03A8; 03C8; Case map 941 03A9; 03C9; Case map 942 03AA; 03CA; Case map 943 03AB; 03CB; Case map 944 03B0; 03C5 0308 0301; Case map 945 03C2; 03C2; Case map 946 03C3; 03C2; Case map 947 03D0; 03B2; Case map 948 03D1; 03B8; Case map 949 03D2; 03C5; Additional folding 950 03D3; 03CD; Additional folding 951 03D4; 03CB; Additional folding 952 03D5; 03C6; Case map 953 03D6; 03C0; Case map 954 03DA; 03DB; Case map 955 03DC; 03DD; Case map 956 03DE; 03DF; Case map 957 03E0; 03E1; Case map 958 03E2; 03E3; Case map 959 03E4; 03E5; Case map 960 03E6; 03E7; Case map 961 03E8; 03E9; Case map 962 03EA; 03EB; Case map 963 03EC; 03ED; Case map 964 03EE; 03EF; Case map 965 03F0; 03BA; Case map 966 03F1; 03C1; Case map 967 03F2; 03C2; Case map 968 0400; 0450; Case map 969 0401; 0451; Case map 970 0402; 0452; Case map 971 0403; 0453; Case map 972 0404; 0454; Case map 973 0405; 0455; Case map 974 0406; 0456; Case map 975 0407; 0457; Case map 976 0408; 0458; Case map 977 0409; 0459; Case map 978 040A; 045A; Case map 979 040B; 045B; Case map 980 040C; 045C; Case map 981 040D; 045D; Case map 982 040E; 045E; Case map 983 040F; 045F; Case map 984 0410; 0430; Case map 985 0411; 0431; Case map 986 0412; 0432; Case map 987 0413; 0433; Case map 988 0414; 0434; Case map 989 0415; 0435; Case map 990 0416; 0436; Case map 991 0417; 0437; Case map 992 0418; 0438; Case map 993 0419; 0439; Case map 994 041A; 043A; Case map 995 041B; 043B; Case map 996 041C; 043C; Case map 997 041D; 043D; Case map 998 041E; 043E; Case map 999 041F; 043F; Case map 1000 0420; 0440; Case map 1001 0421; 0441; Case map 1002 0422; 0442; Case map 1003 0423; 0443; Case map 1004 0424; 0444; Case map 1005 0425; 0445; Case map 1006 0426; 0446; Case map 1007 0427; 0447; Case map 1008 0428; 0448; Case map 1009 0429; 0449; Case map 1010 042A; 044A; Case map 1011 042B; 044B; Case map 1012 042C; 044C; Case map 1013 042D; 044D; Case map 1014 042E; 044E; Case map 1015 042F; 044F; Case map 1016 0460; 0461; Case map 1017 0462; 0463; Case map 1018 0464; 0465; Case map 1019 0466; 0467; Case map 1020 0468; 0469; Case map 1021 046A; 046B; Case map 1022 046C; 046D; Case map 1023 046E; 046F; Case map 1024 0470; 0471; Case map 1025 0472; 0473; Case map 1026 0474; 0475; Case map 1027 0476; 0477; Case map 1028 0478; 0479; Case map 1029 047A; 047B; Case map 1030 047C; 047D; Case map 1031 047E; 047F; Case map 1032 0480; 0481; Case map 1033 048C; 048D; Case map 1034 048E; 048F; Case map 1035 0490; 0491; Case map 1036 0492; 0493; Case map 1037 0494; 0495; Case map 1038 0496; 0497; Case map 1039 0498; 0499; Case map 1040 049A; 049B; Case map 1041 049C; 049D; Case map 1042 049E; 049F; Case map 1043 04A0; 04A1; Case map 1044 04A2; 04A3; Case map 1045 04A4; 04A5; Case map 1046 04A6; 04A7; Case map 1047 04A8; 04A9; Case map 1048 04AA; 04AB; Case map 1049 04AC; 04AD; Case map 1050 04AE; 04AF; Case map 1051 04B0; 04B1; Case map 1052 04B2; 04B3; Case map 1053 04B4; 04B5; Case map 1054 04B6; 04B7; Case map 1055 04B8; 04B9; Case map 1056 04BA; 04BB; Case map 1057 04BC; 04BD; Case map 1058 04BE; 04BF; Case map 1059 04C1; 04C2; Case map 1060 04C3; 04C4; Case map 1061 04C7; 04C8; Case map 1062 04CB; 04CC; Case map 1063 04D0; 04D1; Case map 1064 04D2; 04D3; Case map 1065 04D4; 04D5; Case map 1066 04D6; 04D7; Case map 1067 04D8; 04D9; Case map 1068 04DA; 04DB; Case map 1069 04DC; 04DD; Case map 1070 04DE; 04DF; Case map 1071 04E0; 04E1; Case map 1072 04E2; 04E3; Case map 1073 04E4; 04E5; Case map 1074 04E6; 04E7; Case map 1075 04E8; 04E9; Case map 1076 04EA; 04EB; Case map 1077 04EC; 04ED; Case map 1078 04EE; 04EF; Case map 1079 04F0; 04F1; Case map 1080 04F2; 04F3; Case map 1081 04F4; 04F5; Case map 1082 04F8; 04F9; Case map 1083 0531; 0561; Case map 1084 0532; 0562; Case map 1085 0533; 0563; Case map 1086 0534; 0564; Case map 1087 0535; 0565; Case map 1088 0536; 0566; Case map 1089 0537; 0567; Case map 1090 0538; 0568; Case map 1091 0539; 0569; Case map 1092 053A; 056A; Case map 1093 053B; 056B; Case map 1094 053C; 056C; Case map 1095 053D; 056D; Case map 1096 053E; 056E; Case map 1097 053F; 056F; Case map 1098 0540; 0570; Case map 1099 0541; 0571; Case map 1100 0542; 0572; Case map 1101 0543; 0573; Case map 1102 0544; 0574; Case map 1103 0545; 0575; Case map 1104 0546; 0576; Case map 1105 0547; 0577; Case map 1106 0548; 0578; Case map 1107 0549; 0579; Case map 1108 054A; 057A; Case map 1109 054B; 057B; Case map 1110 054C; 057C; Case map 1111 054D; 057D; Case map 1112 054E; 057E; Case map 1113 054F; 057F; Case map 1114 0550; 0580; Case map 1115 0551; 0581; Case map 1116 0552; 0582; Case map 1117 0553; 0583; Case map 1118 0554; 0584; Case map 1119 0555; 0585; Case map 1120 0556; 0586; Case map 1121 0587; 0565 0582; Case map 1122 1806; ; Map out 1123 180B; ; Map out 1124 180C; ; Map out 1125 180D; ; Map out 1126 1E00; 1E01; Case map 1127 1E02; 1E03; Case map 1128 1E04; 1E05; Case map 1129 1E06; 1E07; Case map 1130 1E08; 1E09; Case map 1131 1E0A; 1E0B; Case map 1132 1E0C; 1E0D; Case map 1133 1E0E; 1E0F; Case map 1134 1E10; 1E11; Case map 1135 1E12; 1E13; Case map 1136 1E14; 1E15; Case map 1137 1E16; 1E17; Case map 1138 1E18; 1E19; Case map 1139 1E1A; 1E1B; Case map 1140 1E1C; 1E1D; Case map 1141 1E1E; 1E1F; Case map 1142 1E20; 1E21; Case map 1143 1E22; 1E23; Case map 1144 1E24; 1E25; Case map 1145 1E26; 1E27; Case map 1146 1E28; 1E29; Case map 1147 1E2A; 1E2B; Case map 1148 1E2C; 1E2D; Case map 1149 1E2E; 1E2F; Case map 1150 1E30; 1E31; Case map 1151 1E32; 1E33; Case map 1152 1E34; 1E35; Case map 1153 1E36; 1E37; Case map 1154 1E38; 1E39; Case map 1155 1E3A; 1E3B; Case map 1156 1E3C; 1E3D; Case map 1157 1E3E; 1E3F; Case map 1158 1E40; 1E41; Case map 1159 1E42; 1E43; Case map 1160 1E44; 1E45; Case map 1161 1E46; 1E47; Case map 1162 1E48; 1E49; Case map 1163 1E4A; 1E4B; Case map 1164 1E4C; 1E4D; Case map 1165 1E4E; 1E4F; Case map 1166 1E50; 1E51; Case map 1167 1E52; 1E53; Case map 1168 1E54; 1E55; Case map 1169 1E56; 1E57; Case map 1170 1E58; 1E59; Case map 1171 1E5A; 1E5B; Case map 1172 1E5C; 1E5D; Case map 1173 1E5E; 1E5F; Case map 1174 1E60; 1E61; Case map 1175 1E62; 1E63; Case map 1176 1E64; 1E65; Case map 1177 1E66; 1E67; Case map 1178 1E68; 1E69; Case map 1179 1E6A; 1E6B; Case map 1180 1E6C; 1E6D; Case map 1181 1E6E; 1E6F; Case map 1182 1E70; 1E71; Case map 1183 1E72; 1E73; Case map 1184 1E74; 1E75; Case map 1185 1E76; 1E77; Case map 1186 1E78; 1E79; Case map 1187 1E7A; 1E7B; Case map 1188 1E7C; 1E7D; Case map 1189 1E7E; 1E7F; Case map 1190 1E80; 1E81; Case map 1191 1E82; 1E83; Case map 1192 1E84; 1E85; Case map 1193 1E86; 1E87; Case map 1194 1E88; 1E89; Case map 1195 1E8A; 1E8B; Case map 1196 1E8C; 1E8D; Case map 1197 1E8E; 1E8F; Case map 1198 1E90; 1E91; Case map 1199 1E92; 1E93; Case map 1200 1E94; 1E95; Case map 1201 1E96; 0068 0331; Case map 1202 1E97; 0074 0308; Case map 1203 1E98; 0077 030A; Case map 1204 1E99; 0079 030A; Case map 1205 1E9A; 0061 02BE; Case map 1206 1E9B; 1E61; Case map 1207 1EA0; 1EA1; Case map 1208 1EA2; 1EA3; Case map 1209 1EA4; 1EA5; Case map 1210 1EA6; 1EA7; Case map 1211 1EA8; 1EA9; Case map 1212 1EAA; 1EAB; Case map 1213 1EAC; 1EAD; Case map 1214 1EAE; 1EAF; Case map 1215 1EB0; 1EB1; Case map 1216 1EB2; 1EB3; Case map 1217 1EB4; 1EB5; Case map 1218 1EB6; 1EB7; Case map 1219 1EB8; 1EB9; Case map 1220 1EBA; 1EBB; Case map 1221 1EBC; 1EBD; Case map 1222 1EBE; 1EBF; Case map 1223 1EC0; 1EC1; Case map 1224 1EC2; 1EC3; Case map 1225 1EC4; 1EC5; Case map 1226 1EC6; 1EC7; Case map 1227 1EC8; 1EC9; Case map 1228 1ECA; 1ECB; Case map 1229 1ECC; 1ECD; Case map 1230 1ECE; 1ECF; Case map 1231 1ED0; 1ED1; Case map 1232 1ED2; 1ED3; Case map 1233 1ED4; 1ED5; Case map 1234 1ED6; 1ED7; Case map 1235 1ED8; 1ED9; Case map 1236 1EDA; 1EDB; Case map 1237 1EDC; 1EDD; Case map 1238 1EDE; 1EDF; Case map 1239 1EE0; 1EE1; Case map 1240 1EE2; 1EE3; Case map 1241 1EE4; 1EE5; Case map 1242 1EE6; 1EE7; Case map 1243 1EE8; 1EE9; Case map 1244 1EEA; 1EEB; Case map 1245 1EEC; 1EED; Case map 1246 1EEE; 1EEF; Case map 1247 1EF0; 1EF1; Case map 1248 1EF2; 1EF3; Case map 1249 1EF4; 1EF5; Case map 1250 1EF6; 1EF7; Case map 1251 1EF8; 1EF9; Case map 1252 1F08; 1F00; Case map 1253 1F09; 1F01; Case map 1254 1F0A; 1F02; Case map 1255 1F0B; 1F03; Case map 1256 1F0C; 1F04; Case map 1257 1F0D; 1F05; Case map 1258 1F0E; 1F06; Case map 1259 1F0F; 1F07; Case map 1260 1F18; 1F10; Case map 1261 1F19; 1F11; Case map 1262 1F1A; 1F12; Case map 1263 1F1B; 1F13; Case map 1264 1F1C; 1F14; Case map 1265 1F1D; 1F15; Case map 1266 1F28; 1F20; Case map 1267 1F29; 1F21; Case map 1268 1F2A; 1F22; Case map 1269 1F2B; 1F23; Case map 1270 1F2C; 1F24; Case map 1271 1F2D; 1F25; Case map 1272 1F2E; 1F26; Case map 1273 1F2F; 1F27; Case map 1274 1F38; 1F30; Case map 1275 1F39; 1F31; Case map 1276 1F3A; 1F32; Case map 1277 1F3B; 1F33; Case map 1278 1F3C; 1F34; Case map 1279 1F3D; 1F35; Case map 1280 1F3E; 1F36; Case map 1281 1F3F; 1F37; Case map 1282 1F48; 1F40; Case map 1283 1F49; 1F41; Case map 1284 1F4A; 1F42; Case map 1285 1F4B; 1F43; Case map 1286 1F4C; 1F44; Case map 1287 1F4D; 1F45; Case map 1288 1F50; 03C5 0313; Case map 1289 1F52; 03C5 0313 0300; Case map 1290 1F54; 03C5 0313 0301; Case map 1291 1F56; 03C5 0313 0342; Case map 1292 1F59; 1F51; Case map 1293 1F5B; 1F53; Case map 1294 1F5D; 1F55; Case map 1295 1F5F; 1F57; Case map 1296 1F68; 1F60; Case map 1297 1F69; 1F61; Case map 1298 1F6A; 1F62; Case map 1299 1F6B; 1F63; Case map 1300 1F6C; 1F64; Case map 1301 1F6D; 1F65; Case map 1302 1F6E; 1F66; Case map 1303 1F6F; 1F67; Case map 1304 1F80; 1F00 03B9; Case map 1305 1F81; 1F01 03B9; Case map 1306 1F82; 1F02 03B9; Case map 1307 1F83; 1F03 03B9; Case map 1308 1F84; 1F04 03B9; Case map 1309 1F85; 1F05 03B9; Case map 1310 1F86; 1F06 03B9; Case map 1311 1F87; 1F07 03B9; Case map 1312 1F88; 1F00 03B9; Case map 1313 1F89; 1F01 03B9; Case map 1314 1F8A; 1F02 03B9; Case map 1315 1F8B; 1F03 03B9; Case map 1316 1F8C; 1F04 03B9; Case map 1317 1F8D; 1F05 03B9; Case map 1318 1F8E; 1F06 03B9; Case map 1319 1F8F; 1F07 03B9; Case map 1320 1F90; 1F20 03B9; Case map 1321 1F91; 1F21 03B9; Case map 1322 1F92; 1F22 03B9; Case map 1323 1F93; 1F23 03B9; Case map 1324 1F94; 1F24 03B9; Case map 1325 1F95; 1F25 03B9; Case map 1326 1F96; 1F26 03B9; Case map 1327 1F97; 1F27 03B9; Case map 1328 1F98; 1F20 03B9; Case map 1329 1F99; 1F21 03B9; Case map 1330 1F9A; 1F22 03B9; Case map 1331 1F9B; 1F23 03B9; Case map 1332 1F9C; 1F24 03B9; Case map 1333 1F9D; 1F25 03B9; Case map 1334 1F9E; 1F26 03B9; Case map 1335 1F9F; 1F27 03B9; Case map 1336 1FA0; 1F60 03B9; Case map 1337 1FA1; 1F61 03B9; Case map 1338 1FA2; 1F62 03B9; Case map 1339 1FA3; 1F63 03B9; Case map 1340 1FA4; 1F64 03B9; Case map 1341 1FA5; 1F65 03B9; Case map 1342 1FA6; 1F66 03B9; Case map 1343 1FA7; 1F67 03B9; Case map 1344 1FA8; 1F60 03B9; Case map 1345 1FA9; 1F61 03B9; Case map 1346 1FAA; 1F62 03B9; Case map 1347 1FAB; 1F63 03B9; Case map 1348 1FAC; 1F64 03B9; Case map 1349 1FAD; 1F65 03B9; Case map 1350 1FAE; 1F66 03B9; Case map 1351 1FAF; 1F67 03B9; Case map 1352 1FB2; 1F70 03B9; Case map 1353 1FB3; 03B1 03B9; Case map 1354 1FB4; 03AC 03B9; Case map 1355 1FB6; 03B1 0342; Case map 1356 1FB7; 03B1 0342 03B9; Case map 1357 1FB8; 1FB0; Case map 1358 1FB9; 1FB1; Case map 1359 1FBA; 1F70; Case map 1360 1FBB; 1F71; Case map 1361 1FBC; 03B1 03B9; Case map 1362 1FBE; 03B9; Case map 1363 1FC2; 1F74 03B9; Case map 1364 1FC3; 03B7 03B9; Case map 1365 1FC4; 03AE 03B9; Case map 1366 1FC6; 03B7 0342; Case map 1367 1FC7; 03B7 0342 03B9; Case map 1368 1FC8; 1F72; Case map 1369 1FC9; 1F73; Case map 1370 1FCA; 1F74; Case map 1371 1FCB; 1F75; Case map 1372 1FCC; 03B7 03B9; Case map 1373 1FD2; 03B9 0308 0300; Case map 1374 1FD3; 03B9 0308 0301; Case map 1375 1FD6; 03B9 0342; Case map 1376 1FD7; 03B9 0308 0342; Case map 1377 1FD8; 1FD0; Case map 1378 1FD9; 1FD1; Case map 1379 1FDA; 1F76; Case map 1380 1FDB; 1F77; Case map 1381 1FE2; 03C5 0308 0300; Case map 1382 1FE3; 03C5 0308 0301; Case map 1383 1FE4; 03C1 0313; Case map 1384 1FE6; 03C5 0342; Case map 1385 1FE7; 03C5 0308 0342; Case map 1386 1FE8; 1FE0; Case map 1387 1FE9; 1FE1; Case map 1388 1FEA; 1F7A; Case map 1389 1FEB; 1F7B; Case map 1390 1FEC; 1FE5; Case map 1391 1FF2; 1F7C 03B9; Case map 1392 1FF3; 03C9 03B9; Case map 1393 1FF4; 03CE 03B9; Case map 1394 1FF6; 03C9 0342; Case map 1395 1FF7; 03C9 0342 03B9; Case map 1396 1FF8; 1F78; Case map 1397 1FF9; 1F79; Case map 1398 1FFA; 1F7C; Case map 1399 1FFB; 1F7D; Case map 1400 1FFC; 03C9 03B9; Case map 1401 200B; ; Map out 1402 200C; ; Map out 1403 200D; ; Map out 1404 20A8; 0072 0073; Additional folding 1405 2102; 0063; Additional folding 1406 2103; 00B0 0063; Additional folding 1407 2107; 025B; Additional folding 1408 2109; 00B0 0066; Additional folding 1409 210B; 0068; Additional folding 1410 210C; 0068; Additional folding 1411 210D; 0068; Additional folding 1412 2110; 0069; Additional folding 1413 2111; 0069; Additional folding 1414 2112; 006C; Additional folding 1415 2115; 006E; Additional folding 1416 2116; 006E 006F; Additional folding 1417 2119; 0070; Additional folding 1418 211A; 0071; Additional folding 1419 211B; 0072; Additional folding 1420 211C; 0072; Additional folding 1421 211D; 0072; Additional folding 1422 2120; 0073 006D; Additional folding 1423 2121; 0074 0065 006C; Additional folding 1424 2122; 0074 006D; Additional folding 1425 2124; 007A; Additional folding 1426 2126; 03C9; Case map 1427 2128; 007A; Additional folding 1428 212A; 006B; Case map 1429 212B; 00E5; Case map 1430 212C; 0062; Additional folding 1431 212D; 0063; Additional folding 1432 2130; 0065; Additional folding 1433 2131; 0066; Additional folding 1434 2133; 006D; Additional folding 1435 2160; 2170; Case map 1436 2161; 2171; Case map 1437 2162; 2172; Case map 1438 2163; 2173; Case map 1439 2164; 2174; Case map 1440 2165; 2175; Case map 1441 2166; 2176; Case map 1442 2167; 2177; Case map 1443 2168; 2178; Case map 1444 2169; 2179; Case map 1445 216A; 217A; Case map 1446 216B; 217B; Case map 1447 216C; 217C; Case map 1448 216D; 217D; Case map 1449 216E; 217E; Case map 1450 216F; 217F; Case map 1451 24B6; 24D0; Case map 1452 24B7; 24D1; Case map 1453 24B8; 24D2; Case map 1454 24B9; 24D3; Case map 1455 24BA; 24D4; Case map 1456 24BB; 24D5; Case map 1457 24BC; 24D6; Case map 1458 24BD; 24D7; Case map 1459 24BE; 24D8; Case map 1460 24BF; 24D9; Case map 1461 24C0; 24DA; Case map 1462 24C1; 24DB; Case map 1463 24C2; 24DC; Case map 1464 24C3; 24DD; Case map 1465 24C4; 24DE; Case map 1466 24C5; 24DF; Case map 1467 24C6; 24E0; Case map 1468 24C7; 24E1; Case map 1469 24C8; 24E2; Case map 1470 24C9; 24E3; Case map 1471 24CA; 24E4; Case map 1472 24CB; 24E5; Case map 1473 24CC; 24E6; Case map 1474 24CD; 24E7; Case map 1475 24CE; 24E8; Case map 1476 24CF; 24E9; Case map 1477 3371; 0068 0070 0061; Additional folding 1478 3373; 0061 0075; Additional folding 1479 3375; 006F 0076; Additional folding 1480 3380; 0070 0061; Additional folding 1481 3381; 006E 0061; Additional folding 1482 3382; 03BC 0061; Additional folding 1483 3383; 006D 0061; Additional folding 1484 3384; 006B 0061; Additional folding 1485 3385; 006B 0062; Additional folding 1486 3386; 006D 0062; Additional folding 1487 3387; 0067 0062; Additional folding 1488 338A; 0070 0066; Additional folding 1489 338B; 006E 0066; Additional folding 1490 338C; 03BC 0066; Additional folding 1491 3390; 0068 007A; Additional folding 1492 3391; 006B 0068 007A; Additional folding 1493 3392; 006D 0068 007A; Additional folding 1494 3393; 0067 0068 007A; Additional folding 1495 3394; 0074 0068 007A; Additional folding 1496 33A9; 0070 0061; Additional folding 1497 33AA; 006B 0070 0061; Additional folding 1498 33AB; 006D 0070 0061; Additional folding 1499 33AC; 0067 0070 0061; Additional folding 1500 33B4; 0070 0076; Additional folding 1501 33B5; 006E 0076; Additional folding 1502 33B6; 03BC 0076; Additional folding 1503 33B7; 006D 0076; Additional folding 1504 33B8; 006B 0076; Additional folding 1505 33B9; 006D 0076; Additional folding 1506 33BA; 0070 0077; Additional folding 1507 33BB; 006E 0077; Additional folding 1508 33BC; 03BC 0077; Additional folding 1509 33BD; 006D 0077; Additional folding 1510 33BE; 006B 0077; Additional folding 1511 33BF; 006D 0077; Additional folding 1512 33C0; 006B 03C9; Additional folding 1513 33C1; 006D 03C9; Additional folding 1514 33C3; 0062 0071; Additional folding 1515 33C6; 0063 2215 006B 0067; Additional folding 1516 33C7; 0063 006F 002E; Additional folding 1517 33C8; 0064 0062; Additional folding 1518 33C9; 0067 0079; Additional folding 1519 33CB; 0068 0070; Additional folding 1520 33CD; 006B 006B; Additional folding 1521 33CE; 006B 006D; Additional folding 1522 33D7; 0070 0068; Additional folding 1523 33D9; 0070 0070 006D; Additional folding 1524 33DA; 0070 0072; Additional folding 1525 33DC; 0073 0076; Additional folding 1526 33DD; 0077 0062; Additional folding 1527 FB00; 0066 0066; Case map 1528 FB01; 0066 0069; Case map 1529 FB02; 0066 006C; Case map 1530 FB03; 0066 0066 0069; Case map 1531 FB04; 0066 0066 006C; Case map 1532 FB05; 0073 0074; Case map 1533 FB06; 0073 0074; Case map 1534 FB13; 0574 0576; Case map 1535 FB14; 0574 0565; Case map 1536 FB15; 0574 056B; Case map 1537 FB16; 057E 0576; Case map 1538 FB17; 0574 056D; Case map 1539 FEFF; ; Map out 1540 FF21; FF41; Case map 1541 FF22; FF42; Case map 1542 FF23; FF43; Case map 1543 FF24; FF44; Case map 1544 FF25; FF45; Case map 1545 FF26; FF46; Case map 1546 FF27; FF47; Case map 1547 FF28; FF48; Case map 1548 FF29; FF49; Case map 1549 FF2A; FF4A; Case map 1550 FF2B; FF4B; Case map 1551 FF2C; FF4C; Case map 1552 FF2D; FF4D; Case map 1553 FF2E; FF4E; Case map 1554 FF2F; FF4F; Case map 1555 FF30; FF50; Case map 1556 FF31; FF51; Case map 1557 FF32; FF52; Case map 1558 FF33; FF53; Case map 1559 FF34; FF54; Case map 1560 FF35; FF55; Case map 1561 FF36; FF56; Case map 1562 FF37; FF57; Case map 1563 FF38; FF58; Case map 1564 FF39; FF59; Case map 1565 FF3A; FF5A; Case map 1566 ----- End Mapping Table ----- 1568 F. Prohibited Code Point List 1570 ----- Start Prohibited Table ----- 1571 0000-002C 1572 002E-002F 1573 003A-0040 1574 005B-0060 1575 007B-007F 1576 0080-009F 1577 00A0 1578 1680 1579 2000 1580 2001 1581 2002 1582 2003 1583 2004 1584 2005 1585 2006 1586 2007 1587 2008 1588 2009 1589 200A 1590 200B 1591 200E 1592 200F 1593 2028 1594 2029 1595 202A 1596 202B 1597 202C 1598 202D 1599 202E 1600 202F 1601 206A 1602 206B 1603 206C 1604 206D 1605 206E 1606 206F 1607 2FF0-2FFF 1608 3000 1609 3002 1610 D800-DFFF 1611 E000-F8FF 1612 FFF9 1613 FFFA 1614 FFFB 1615 FFFC 1616 FFFD 1617 FFFE-FFFF 1618 1FFFE-1FFFF 1619 2FFFE-2FFFF 1620 3FFFE-3FFFF 1621 4FFFE-4FFFF 1622 5FFFE-5FFFF 1623 6FFFE-6FFFF 1624 7FFFE-7FFFF 1625 8FFFE-8FFFF 1626 9FFFE-9FFFF 1627 AFFFE-AFFFF 1628 BFFFE-BFFFF 1629 CFFFE-CFFFF 1630 DFFFE-DFFFF 1631 EFFFE-EFFFF 1632 F0000-FFFFD 1633 FFFFE-FFFFF 1634 100000-10FFFD 1635 10FFFE-10FFFF 1636 ----- End Prohibited Table ----- 1638 NOTE WELL: Software that follows this specification that will be used to 1639 check names before they are put in authoritative name servers MUST add 1640 all unassigned code pints to the list of characters that are prohibited. 1641 See Section 6 for more details. 1643 G. Unassigned Code Point List 1645 ----- Start Unassigned Table ----- 1646 0220-0221 1647 0234-024F 1648 02AE-02AF 1649 02EF-02FF 1650 034F-035F 1651 0363-0373 1652 0376-0379 1653 037B-037D 1654 037F-0383 1655 038B 1656 038D 1657 03A2 1658 03CF 1659 03D8-03D9 1660 03F4-03FF 1661 0487 1662 048A-048B 1663 04C5-04C6 1664 04C9-04CA 1665 04CD-04CF 1666 04F6-04F7 1667 04FA-0530 1668 0557-0558 1669 0560 1670 0588 1671 058B-0590 1672 05A2 1673 05BA 1674 05C5-05CF 1675 05EB-05EF 1676 05F5-060B 1677 060D-061A 1678 061C-061E 1679 0620 1680 063B-063F 1681 0656-065F 1682 066E-066F 1683 06EE-06EF 1684 06FF 1685 070E 1686 072D-072F 1687 074B-077F 1688 07B1-0900 1689 0904 1690 093A-093B 1691 094E-094F 1692 0955-0957 1693 0971-0980 1694 0984 1695 098D-098E 1696 0991-0992 1697 09A9 1698 09B1 1699 09B3-09B5 1700 09BA-09BB 1701 09BD 1702 09C5-09C6 1703 09C9-09CA 1704 09CE-09D6 1705 09D8-09DB 1706 09DE 1707 09E4-09E5 1708 09FB-0A01 1709 0A03-0A04 1710 0A0B-0A0E 1711 0A11-0A12 1712 0A29 1713 0A31 1714 0A34 1715 0A37 1716 0A3A-0A3B 1717 0A3D 1718 0A43-0A46 1719 0A49-0A4A 1720 0A4E-0A58 1721 0A5D 1722 0A5F-0A65 1723 0A75-0A80 1724 0A84 1725 0A8C 1726 0A8E 1727 0A92 1728 0AA9 1729 0AB1 1730 0AB4 1731 0ABA-0ABB 1732 0AC6 1733 0ACA 1734 0ACE-0ACF 1735 0AD1-0ADF 1736 0AE1-0AE5 1737 0AF0-0B00 1738 0B04 1739 0B0D-0B0E 1740 0B11-0B12 1741 0B29 1742 0B31 1743 0B34-0B35 1744 0B3A-0B3B 1745 0B44-0B46 1746 0B49-0B4A 1747 0B4E-0B55 1748 0B58-0B5B 1749 0B5E 1750 0B62-0B65 1751 0B71-0B81 1752 0B84 1753 0B8B-0B8D 1754 0B91 1755 0B96-0B98 1756 0B9B 1757 0B9D 1758 0BA0-0BA2 1759 0BA5-0BA7 1760 0BAB-0BAD 1761 0BB6 1762 0BBA-0BBD 1763 0BC3-0BC5 1764 0BC9 1765 0BCE-0BD6 1766 0BD8-0BE6 1767 0BF3-0C00 1768 0C04 1769 0C0D 1770 0C11 1771 0C29 1772 0C34 1773 0C3A-0C3D 1774 0C45 1775 0C49 1776 0C4E-0C54 1777 0C57-0C5F 1778 0C62-0C65 1779 0C70-0C81 1780 0C84 1781 0C8D 1782 0C91 1783 0CA9 1784 0CB4 1785 0CBA-0CBD 1786 0CC5 1787 0CC9 1788 0CCE-0CD4 1789 0CD7-0CDD 1790 0CDF 1791 0CE2-0CE5 1792 0CF0-0D01 1793 0D04 1794 0D0D 1795 0D11 1796 0D29 1797 0D3A-0D3D 1798 0D44-0D45 1799 0D49 1800 0D4E-0D56 1801 0D58-0D5F 1802 0D62-0D65 1803 0D70-0D81 1804 0D84 1805 0D97-0D99 1806 0DB2 1807 0DBC 1808 0DBE-0DBF 1809 0DC7-0DC9 1810 0DCB-0DCE 1811 0DD5 1812 0DD7 1813 0DE0-0DF1 1814 0DF5-0E00 1815 0E3B-0E3E 1816 0E5C-0E80 1817 0E83 1818 0E85-0E86 1819 0E89 1820 0E8B-0E8C 1821 0E8E-0E93 1822 0E98 1823 0EA0 1824 0EA4 1825 0EA6 1826 0EA8-0EA9 1827 0EAC 1828 0EBA 1829 0EBE-0EBF 1830 0EC5 1831 0EC7 1832 0ECE-0ECF 1833 0EDA-0EDB 1834 0EDE-0EFF 1835 0F48 1836 0F6B-0F70 1837 0F8C-0F8F 1838 0F98 1839 0FBD 1840 0FCD-0FCE 1841 0FD0-0FFF 1842 1022 1843 1028 1844 102B 1845 1033-1035 1846 103A-103F 1847 105A-109F 1848 10C6-10CF 1849 10F7-10FA 1850 10FC-10FF 1851 115A-115E 1852 11A3-11A7 1853 11FA-11FF 1854 1207 1855 1247 1856 1249 1857 124E-124F 1858 1257 1859 1259 1860 125E-125F 1861 1287 1862 1289 1863 128E-128F 1864 12AF 1865 12B1 1866 12B6-12B7 1867 12BF 1868 12C1 1869 12C6-12C7 1870 12CF 1871 12D7 1872 12EF 1873 130F 1874 1311 1875 1316-1317 1876 131F 1877 1347 1878 135B-1360 1879 137D-139F 1880 13F5-1400 1881 1677-167F 1882 169D-169F 1883 16F1-177F 1884 17DD-17DF 1885 17EA-17FF 1886 180F 1887 181A-181F 1888 1878-187F 1889 18AA-1DFF 1890 1E9C-1E9F 1891 1EFA-1EFF 1892 1F16-1F17 1893 1F1E-1F1F 1894 1F46-1F47 1895 1F4E-1F4F 1896 1F58 1897 1F5A 1898 1F5C 1899 1F5E 1900 1F7E-1F7F 1901 1FB5 1902 1FC5 1903 1FD4-1FD5 1904 1FDC 1905 1FF0-1FF1 1906 1FF5 1907 1FFF 1908 2047 1909 204E-2069 1910 2071-2073 1911 208F-209F 1912 20B0-20CF 1913 20E4-20FF 1914 213B-2152 1915 2184-218F 1916 21F4-21FF 1917 22F2-22FF 1918 237C 1919 239B-23FF 1920 2427-243F 1921 244B-245F 1922 24EB-24FF 1923 2596-259F 1924 25F8-25FF 1925 2614-2618 1926 2672-2700 1927 2705 1928 270A-270B 1929 2728 1930 274C 1931 274E 1932 2753-2755 1933 2757 1934 275F-2760 1935 2768-2775 1936 2795-2797 1937 27B0 1938 27BF-27FF 1939 2900-2E7F 1940 2E9A 1941 2EF4-2EFF 1942 2FD6-2FEF 1943 2FFC-2FFF 1944 303B-303D 1945 3040 1946 3095-3098 1947 309F-30A0 1948 30FF-3104 1949 312D-3130 1950 318F 1951 31B8-31FF 1952 321D-321F 1953 3244-325F 1954 327C-327E 1955 32B1-32BF 1956 32CC-32CF 1957 32FF 1958 3377-337A 1959 33DE-33DF 1960 33FF 1961 4DB6-4DFF 1962 9FA6-9FFF 1963 A48D-A48F 1964 A4A2-A4A3 1965 A4B4 1966 A4C1 1967 A4C5 1968 A4C7-ABFF 1969 D7A4-D7FF 1970 FA2E-FAFF 1971 FB07-FB12 1972 FB18-FB1C 1973 FB37 1974 FB3D 1975 FB3F 1976 FB42 1977 FB45 1978 FBB2-FBD2 1979 FD40-FD4F 1980 FD90-FD91 1981 FDC8-FDEF 1982 FDFC-FE1F 1983 FE24-FE2F 1984 FE45-FE48 1985 FE53 1986 FE67 1987 FE6C-FE6F 1988 FE73 1989 FE75 1990 FEFD-FEFE 1991 FF00 1992 FF5F-FF60 1993 FFBF-FFC1 1994 FFC8-FFC9 1995 FFD0-FFD1 1996 FFD8-FFD9 1997 FFDD-FFDF 1998 FFE7 1999 FFEF-FFF8 2000 10000-1FFFD 2001 20000-2FFFD 2002 30000-3FFFD 2003 40000-4FFFD 2004 50000-5FFFD 2005 60000-6FFFD 2006 70000-7FFFD 2007 80000-8FFFD 2008 90000-9FFFD 2009 A0000-AFFFD 2010 B0000-BFFFD 2011 C0000-CFFFD 2012 D0000-DFFFD 2013 E0000-EFFFD 2014 ----- End Unassigned Table -----