You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by si...@apache.org on 2012/08/13 15:53:27 UTC

svn commit: r1372423 [28/45] - in /lucene/dev/branches/LUCENE-2878: ./ dev-tools/ dev-tools/eclipse/ dev-tools/idea/.idea/libraries/ dev-tools/maven/ dev-tools/maven/lucene/ dev-tools/maven/lucene/analysis/common/ dev-tools/maven/lucene/analysis/icu/ d...

Modified: lucene/dev/branches/LUCENE-2878/lucene/analysis/icu/src/data/utr30/nfkc.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/analysis/icu/src/data/utr30/nfkc.txt?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/analysis/icu/src/data/utr30/nfkc.txt (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/analysis/icu/src/data/utr30/nfkc.txt Mon Aug 13 13:52:46 2012
@@ -1,306 +1,18 @@
-# Copyright (C) 1999-2010, International Business Machines
+# Copyright (C) 1999-2012, International Business Machines
 # Corporation and others.  All Rights Reserved.
 #
-# Permission is hereby granted, free of charge, to any person obtaining a copy 
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights 
-# to use, copy, modify, merge, publish, distribute, and/or sell copies of the 
-# Software, and to permit persons to whom the Software is furnished to do so, 
-# provided that the above copyright notice(s) and this permission notice appear 
-# in all copies of the Software and that both the above copyright notice(s) and
-# this permission notice appear in supporting documentation.
-# 
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. 
-# IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE 
-# LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR 
-# ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER 
-# IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT 
-# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-# 
-# Except as contained in this notice, the name of a copyright holder shall not 
-# be used in advertising or otherwise to promote the sale, use or other 
-# dealings in this Software without prior written authorization of the 
-# copyright holder.
-#
 # file name: nfkc.txt
 #
-# machine-generated on: 2010-07-23
-#
-# Round-trip mappings (=) containing [:Diacritic:] (see DiacriticFolding.txt)
-# were changed to one-way decompositions, as their non-starters now decompose.
+# machine-generated by ICU preparseucd.py
 #
+# Data for Unicode NFKC normalization.
+# This file contains only compatibility decomposition mappings,
+# plus those canonical decompositions that change from NFC round-trip mappings
+# to NFKC one-way mappings.
+# Use this file as the second gennorm2 input file after nfc.txt.
 
-# Canonical_Combining_Class (ccc) values
-0300..0314:230
-0315:232
-0316..0319:220
-031A:232
-031B:216
-031C..0320:220
-0321..0322:202
-0323..0326:220
-0327..0328:202
-0329..0333:220
-0334..0338:1
-0339..033C:220
-033D..0344:230
-0345:240
-0346:230
-0347..0349:220
-034A..034C:230
-034D..034E:220
-0350..0352:230
-0353..0356:220
-0357:230
-0358:232
-0359..035A:220
-035B:230
-035C:233
-035D..035E:234
-035F:233
-0360..0361:234
-0362:233
-0363..036F:230
-0483..0487:230
-0591:220
-0592..0595:230
-0596:220
-0597..0599:230
-059A:222
-059B:220
-059C..05A1:230
-05A2..05A7:220
-05A8..05A9:230
-05AA:220
-05AB..05AC:230
-05AD:222
-05AE:228
-05AF:230
-05B0:10
-05B1:11
-05B2:12
-05B3:13
-05B4:14
-05B5:15
-05B6:16
-05B7:17
-05B8:18
-05B9..05BA:19
-05BB:20
-05BC:21
-05BD:22
-05BF:23
-05C1:24
-05C2:25
-05C4:230
-05C5:220
-05C7:18
-0610..0617:230
-0618:30
-0619:31
-061A:32
-064B:27
-064C:28
-064D:29
-064E:30
-064F:31
-0650:32
-0651:33
-0652:34
-0653..0654:230
-0655..0656:220
-0657..065B:230
-065C:220
-065D..065E:230
-065F:220
-0670:35
-06D6..06DC:230
-06DF..06E2:230
-06E3:220
-06E4:230
-06E7..06E8:230
-06EA:220
-06EB..06EC:230
-06ED:220
-0711:36
-0730:230
-0731:220
-0732..0733:230
-0734:220
-0735..0736:230
-0737..0739:220
-073A:230
-073B..073C:220
-073D:230
-073E:220
-073F..0741:230
-0742:220
-0743:230
-0744:220
-0745:230
-0746:220
-0747:230
-0748:220
-0749..074A:230
-07EB..07F1:230
-07F2:220
-07F3:230
-0816..0819:230
-081B..0823:230
-0825..0827:230
-0829..082D:230
-0859..085B:220
-093C:7
-094D:9
-0951:230
-0952:220
-0953..0954:230
-09BC:7
-09CD:9
-0A3C:7
-0A4D:9
-0ABC:7
-0ACD:9
-0B3C:7
-0B4D:9
-0BCD:9
-0C4D:9
-0C55:84
-0C56:91
-0CBC:7
-0CCD:9
-0D4D:9
-0DCA:9
-0E38..0E39:103
-0E3A:9
-0E48..0E4B:107
-0EB8..0EB9:118
-0EC8..0ECB:122
-0F18..0F19:220
-0F35:220
-0F37:220
-0F39:216
-0F71:129
-0F72:130
-0F74:132
-0F7A..0F7D:130
-0F80:130
-0F82..0F83:230
-0F84:9
-0F86..0F87:230
-0FC6:220
-1037:7
-1039..103A:9
-108D:220
-135D..135F:230
-1714:9
-1734:9
-17D2:9
-17DD:230
-18A9:228
-1939:222
-193A:230
-193B:220
-1A17:230
-1A18:220
-1A60:9
-1A75..1A7C:230
-1A7F:220
-1B34:7
-1B44:9
-1B6B:230
-1B6C:220
-1B6D..1B73:230
-1BAA:9
-1BE6:7
-1BF2..1BF3:9
-1C37:7
-1CD0..1CD2:230
-1CD4:1
-1CD5..1CD9:220
-1CDA..1CDB:230
-1CDC..1CDF:220
-1CE0:230
-1CE2..1CE8:1
-1CED:220
-1DC0..1DC1:230
-1DC2:220
-1DC3..1DC9:230
-1DCA:220
-1DCB..1DCC:230
-1DCD:234
-1DCE:214
-1DCF:220
-1DD0:202
-1DD1..1DE6:230
-1DFC:233
-1DFD:220
-1DFE:230
-1DFF:220
-20D0..20D1:230
-20D2..20D3:1
-20D4..20D7:230
-20D8..20DA:1
-20DB..20DC:230
-20E1:230
-20E5..20E6:1
-20E7:230
-20E8:220
-20E9:230
-20EA..20EB:1
-20EC..20EF:220
-20F0:230
-2CEF..2CF1:230
-2D7F:9
-2DE0..2DFF:230
-302A:218
-302B:228
-302C:232
-302D:222
-302E..302F:224
-3099..309A:8
-A66F:230
-A67C..A67D:230
-A6F0..A6F1:230
-A806:9
-A8C4:9
-A8E0..A8F1:230
-A92B..A92D:220
-A953:9
-A9B3:7
-A9C0:9
-AAB0:230
-AAB2..AAB3:230
-AAB4:220
-AAB7..AAB8:230
-AABE..AABF:230
-AAC1:230
-ABED:9
-FB1E:26
-FE20..FE26:230
-101FD:220
-10A0D:220
-10A0F:230
-10A38:230
-10A39:1
-10A3A:220
-10A3F:9
-11046:9
-110B9:9
-110BA:7
-1D165..1D166:216
-1D167..1D169:1
-1D16D:226
-1D16E..1D172:216
-1D17B..1D182:220
-1D185..1D189:230
-1D18A..1D18B:220
-1D1AA..1D1AD:230
-1D242..1D244:230
+* Unicode 6.1.0
 
-# Canonical and compatibility decomposition mappings
 00A0>0020
 00A8>0020 0308
 00AA>0061
@@ -315,177 +27,12 @@ FE20..FE26:230
 00BC>0031 2044 0034
 00BD>0031 2044 0032
 00BE>0033 2044 0034
-00C0>0041 0300
-00C1>0041 0301
-00C2>0041 0302
-00C3>0041 0303
-00C4>0041 0308
-00C5>0041 030A
-00C7>0043 0327
-00C8>0045 0300
-00C9>0045 0301
-00CA>0045 0302
-00CB>0045 0308
-00CC>0049 0300
-00CD>0049 0301
-00CE>0049 0302
-00CF>0049 0308
-00D1>004E 0303
-00D2>004F 0300
-00D3>004F 0301
-00D4>004F 0302
-00D5>004F 0303
-00D6>004F 0308
-00D9>0055 0300
-00DA>0055 0301
-00DB>0055 0302
-00DC>0055 0308
-00DD>0059 0301
-00E0>0061 0300
-00E1>0061 0301
-00E2>0061 0302
-00E3>0061 0303
-00E4>0061 0308
-00E5>0061 030A
-00E7>0063 0327
-00E8>0065 0300
-00E9>0065 0301
-00EA>0065 0302
-00EB>0065 0308
-00EC>0069 0300
-00ED>0069 0301
-00EE>0069 0302
-00EF>0069 0308
-00F1>006E 0303
-00F2>006F 0300
-00F3>006F 0301
-00F4>006F 0302
-00F5>006F 0303
-00F6>006F 0308
-00F9>0075 0300
-00FA>0075 0301
-00FB>0075 0302
-00FC>0075 0308
-00FD>0079 0301
-00FF>0079 0308
-0100>0041 0304
-0101>0061 0304
-0102>0041 0306
-0103>0061 0306
-0104>0041 0328
-0105>0061 0328
-0106>0043 0301
-0107>0063 0301
-0108>0043 0302
-0109>0063 0302
-010A>0043 0307
-010B>0063 0307
-010C>0043 030C
-010D>0063 030C
-010E>0044 030C
-010F>0064 030C
-0112>0045 0304
-0113>0065 0304
-0114>0045 0306
-0115>0065 0306
-0116>0045 0307
-0117>0065 0307
-0118>0045 0328
-0119>0065 0328
-011A>0045 030C
-011B>0065 030C
-011C>0047 0302
-011D>0067 0302
-011E>0047 0306
-011F>0067 0306
-0120>0047 0307
-0121>0067 0307
-0122>0047 0327
-0123>0067 0327
-0124>0048 0302
-0125>0068 0302
-0128>0049 0303
-0129>0069 0303
-012A>0049 0304
-012B>0069 0304
-012C>0049 0306
-012D>0069 0306
-012E>0049 0328
-012F>0069 0328
-0130>0049 0307
 0132>0049 004A
 0133>0069 006A
-0134>004A 0302
-0135>006A 0302
-0136>004B 0327
-0137>006B 0327
-0139>004C 0301
-013A>006C 0301
-013B>004C 0327
-013C>006C 0327
-013D>004C 030C
-013E>006C 030C
 013F>004C 00B7
 0140>006C 00B7
-0143>004E 0301
-0144>006E 0301
-0145>004E 0327
-0146>006E 0327
-0147>004E 030C
-0148>006E 030C
 0149>02BC 006E
-014C>004F 0304
-014D>006F 0304
-014E>004F 0306
-014F>006F 0306
-0150>004F 030B
-0151>006F 030B
-0154>0052 0301
-0155>0072 0301
-0156>0052 0327
-0157>0072 0327
-0158>0052 030C
-0159>0072 030C
-015A>0053 0301
-015B>0073 0301
-015C>0053 0302
-015D>0073 0302
-015E>0053 0327
-015F>0073 0327
-0160>0053 030C
-0161>0073 030C
-0162>0054 0327
-0163>0074 0327
-0164>0054 030C
-0165>0074 030C
-0168>0055 0303
-0169>0075 0303
-016A>0055 0304
-016B>0075 0304
-016C>0055 0306
-016D>0075 0306
-016E>0055 030A
-016F>0075 030A
-0170>0055 030B
-0171>0075 030B
-0172>0055 0328
-0173>0075 0328
-0174>0057 0302
-0175>0077 0302
-0176>0059 0302
-0177>0079 0302
-0178>0059 0308
-0179>005A 0301
-017A>007A 0301
-017B>005A 0307
-017C>007A 0307
-017D>005A 030C
-017E>007A 030C
 017F>0073
-01A0>004F 031B
-01A1>006F 031B
-01AF>0055 031B
-01B0>0075 031B
 01C4>0044 017D
 01C5>0044 017E
 01C6>0064 017E
@@ -495,96 +42,9 @@ FE20..FE26:230
 01CA>004E 004A
 01CB>004E 006A
 01CC>006E 006A
-01CD>0041 030C
-01CE>0061 030C
-01CF>0049 030C
-01D0>0069 030C
-01D1>004F 030C
-01D2>006F 030C
-01D3>0055 030C
-01D4>0075 030C
-01D5>00DC 0304
-01D6>00FC 0304
-01D7>00DC 0301
-01D8>00FC 0301
-01D9>00DC 030C
-01DA>00FC 030C
-01DB>00DC 0300
-01DC>00FC 0300
-01DE>00C4 0304
-01DF>00E4 0304
-01E0>0226 0304
-01E1>0227 0304
-01E2>00C6 0304
-01E3>00E6 0304
-01E6>0047 030C
-01E7>0067 030C
-01E8>004B 030C
-01E9>006B 030C
-01EA>004F 0328
-01EB>006F 0328
-01EC>01EA 0304
-01ED>01EB 0304
-01EE>01B7 030C
-01EF>0292 030C
-01F0>006A 030C
 01F1>0044 005A
 01F2>0044 007A
 01F3>0064 007A
-01F4>0047 0301
-01F5>0067 0301
-01F8>004E 0300
-01F9>006E 0300
-01FA>00C5 0301
-01FB>00E5 0301
-01FC>00C6 0301
-01FD>00E6 0301
-01FE>00D8 0301
-01FF>00F8 0301
-0200>0041 030F
-0201>0061 030F
-0202>0041 0311
-0203>0061 0311
-0204>0045 030F
-0205>0065 030F
-0206>0045 0311
-0207>0065 0311
-0208>0049 030F
-0209>0069 030F
-020A>0049 0311
-020B>0069 0311
-020C>004F 030F
-020D>006F 030F
-020E>004F 0311
-020F>006F 0311
-0210>0052 030F
-0211>0072 030F
-0212>0052 0311
-0213>0072 0311
-0214>0055 030F
-0215>0075 030F
-0216>0055 0311
-0217>0075 0311
-0218>0053 0326
-0219>0073 0326
-021A>0054 0326
-021B>0074 0326
-021E>0048 030C
-021F>0068 030C
-0226>0041 0307
-0227>0061 0307
-0228>0045 0327
-0229>0065 0327
-022A>00D6 0304
-022B>00F6 0304
-022C>00D5 0304
-022D>00F5 0304
-022E>004F 0307
-022F>006F 0307
-0230>022E 0304
-0231>022F 0304
-0232>0059 0304
-0233>0079 0304
 02B0>0068
 02B1>0266
 02B2>006A
@@ -605,41 +65,14 @@ FE20..FE26:230
 02E2>0073
 02E3>0078
 02E4>0295
-0340>0300
-0341>0301
-0343>0313
-0344>0308 0301
-0374>02B9
 037A>0020 0345
-037E>003B
 0384>0020 0301
-0385>00A8 0301
-0386>0391 0301
-0387>00B7
-0388>0395 0301
-0389>0397 0301
-038A>0399 0301
-038C>039F 0301
-038E>03A5 0301
-038F>03A9 0301
-0390>03CA 0301
-03AA>0399 0308
-03AB>03A5 0308
-03AC>03B1 0301
-03AD>03B5 0301
-03AE>03B7 0301
-03AF>03B9 0301
-03B0>03CB 0301
-03CA>03B9 0308
-03CB>03C5 0308
-03CC>03BF 0301
-03CD>03C5 0301
-03CE>03C9 0301
+0385>00A8 0301  # NFC round-trip, NFKC one-way
 03D0>03B2
 03D1>03B8
 03D2>03A5
-03D3>03D2 0301
-03D4>03D2 0308
+03D3>03D2 0301  # NFC round-trip, NFKC one-way
+03D4>03D2 0308  # NFC round-trip, NFKC one-way
 03D5>03C6
 03D6>03C0
 03F0>03BA
@@ -648,152 +81,19 @@ FE20..FE26:230
 03F4>0398
 03F5>03B5
 03F9>03A3
-0400>0415 0300
-0401>0415 0308
-0403>0413 0301
-0407>0406 0308
-040C>041A 0301
-040D>0418 0300
-040E>0423 0306
-0419>0418 0306
-0439>0438 0306
-0450>0435 0300
-0451>0435 0308
-0453>0433 0301
-0457>0456 0308
-045C>043A 0301
-045D>0438 0300
-045E>0443 0306
-0476>0474 030F
-0477>0475 030F
-04C1>0416 0306
-04C2>0436 0306
-04D0>0410 0306
-04D1>0430 0306
-04D2>0410 0308
-04D3>0430 0308
-04D6>0415 0306
-04D7>0435 0306
-04DA>04D8 0308
-04DB>04D9 0308
-04DC>0416 0308
-04DD>0436 0308
-04DE>0417 0308
-04DF>0437 0308
-04E2>0418 0304
-04E3>0438 0304
-04E4>0418 0308
-04E5>0438 0308
-04E6>041E 0308
-04E7>043E 0308
-04EA>04E8 0308
-04EB>04E9 0308
-04EC>042D 0308
-04ED>044D 0308
-04EE>0423 0304
-04EF>0443 0304
-04F0>0423 0308
-04F1>0443 0308
-04F2>0423 030B
-04F3>0443 030B
-04F4>0427 0308
-04F5>0447 0308
-04F8>042B 0308
-04F9>044B 0308
 0587>0565 0582
-0622>0627 0653
-0623>0627 0654
-0624>0648 0654
-0625>0627 0655
-0626>064A 0654
 0675>0627 0674
 0676>0648 0674
 0677>06C7 0674
 0678>064A 0674
-06C0>06D5 0654
-06C2>06C1 0654
-06D3>06D2 0654
-0929>0928 093C
-0931>0930 093C
-0934>0933 093C
-0958>0915 093C
-0959>0916 093C
-095A>0917 093C
-095B>091C 093C
-095C>0921 093C
-095D>0922 093C
-095E>092B 093C
-095F>092F 093C
-09CB=09C7 09BE
-09CC=09C7 09D7
-09DC>09A1 09BC
-09DD>09A2 09BC
-09DF>09AF 09BC
-0A33>0A32 0A3C
-0A36>0A38 0A3C
-0A59>0A16 0A3C
-0A5A>0A17 0A3C
-0A5B>0A1C 0A3C
-0A5E>0A2B 0A3C
-0B48=0B47 0B56
-0B4B=0B47 0B3E
-0B4C=0B47 0B57
-0B5C>0B21 0B3C
-0B5D>0B22 0B3C
-0B94=0B92 0BD7
-0BCA=0BC6 0BBE
-0BCB=0BC7 0BBE
-0BCC=0BC6 0BD7
-0C48=0C46 0C56
-0CC0=0CBF 0CD5
-0CC7=0CC6 0CD5
-0CC8=0CC6 0CD6
-0CCA=0CC6 0CC2
-0CCB=0CCA 0CD5
-0D4A=0D46 0D3E
-0D4B=0D47 0D3E
-0D4C=0D46 0D57
-0DDA>0DD9 0DCA
-0DDC=0DD9 0DCF
-0DDD>0DDC 0DCA
-0DDE=0DD9 0DDF
 0E33>0E4D 0E32
 0EB3>0ECD 0EB2
 0EDC>0EAB 0E99
 0EDD>0EAB 0EA1
 0F0C>0F0B
-0F43>0F42 0FB7
-0F4D>0F4C 0FB7
-0F52>0F51 0FB7
-0F57>0F56 0FB7
-0F5C>0F5B 0FB7
-0F69>0F40 0FB5
-0F73>0F71 0F72
-0F75>0F71 0F74
-0F76>0FB2 0F80
 0F77>0FB2 0F81
-0F78>0FB3 0F80
 0F79>0FB3 0F81
-0F81>0F71 0F80
-0F93>0F92 0FB7
-0F9D>0F9C 0FB7
-0FA2>0FA1 0FB7
-0FA7>0FA6 0FB7
-0FAC>0FAB 0FB7
-0FB9>0F90 0FB5
-1026=1025 102E
 10FC>10DC
-1B06=1B05 1B35
-1B08=1B07 1B35
-1B0A=1B09 1B35
-1B0C=1B0B 1B35
-1B0E=1B0D 1B35
-1B12=1B11 1B35
-1B3B=1B3A 1B35
-1B3D=1B3C 1B35
-1B40=1B3E 1B35
-1B41=1B3F 1B35
-1B43=1B42 1B35
 1D2C>0041
 1D2D>00C6
 1D2E>0042
@@ -892,487 +192,20 @@ FE20..FE26:230
 1DBD>0291
 1DBE>0292
 1DBF>03B8
-1E00>0041 0325
-1E01>0061 0325
-1E02>0042 0307
-1E03>0062 0307
-1E04>0042 0323
-1E05>0062 0323
-1E06>0042 0331
-1E07>0062 0331
-1E08>00C7 0301
-1E09>00E7 0301
-1E0A>0044 0307
-1E0B>0064 0307
-1E0C>0044 0323
-1E0D>0064 0323
-1E0E>0044 0331
-1E0F>0064 0331
-1E10>0044 0327
-1E11>0064 0327
-1E12>0044 032D
-1E13>0064 032D
-1E14>0112 0300
-1E15>0113 0300
-1E16>0112 0301
-1E17>0113 0301
-1E18>0045 032D
-1E19>0065 032D
-1E1A>0045 0330
-1E1B>0065 0330
-1E1C>0228 0306
-1E1D>0229 0306
-1E1E>0046 0307
-1E1F>0066 0307
-1E20>0047 0304
-1E21>0067 0304
-1E22>0048 0307
-1E23>0068 0307
-1E24>0048 0323
-1E25>0068 0323
-1E26>0048 0308
-1E27>0068 0308
-1E28>0048 0327
-1E29>0068 0327
-1E2A>0048 032E
-1E2B>0068 032E
-1E2C>0049 0330
-1E2D>0069 0330
-1E2E>00CF 0301
-1E2F>00EF 0301
-1E30>004B 0301
-1E31>006B 0301
-1E32>004B 0323
-1E33>006B 0323
-1E34>004B 0331
-1E35>006B 0331
-1E36>004C 0323
-1E37>006C 0323
-1E38>1E36 0304
-1E39>1E37 0304
-1E3A>004C 0331
-1E3B>006C 0331
-1E3C>004C 032D
-1E3D>006C 032D
-1E3E>004D 0301
-1E3F>006D 0301
-1E40>004D 0307
-1E41>006D 0307
-1E42>004D 0323
-1E43>006D 0323
-1E44>004E 0307
-1E45>006E 0307
-1E46>004E 0323
-1E47>006E 0323
-1E48>004E 0331
-1E49>006E 0331
-1E4A>004E 032D
-1E4B>006E 032D
-1E4C>00D5 0301
-1E4D>00F5 0301
-1E4E>00D5 0308
-1E4F>00F5 0308
-1E50>014C 0300
-1E51>014D 0300
-1E52>014C 0301
-1E53>014D 0301
-1E54>0050 0301
-1E55>0070 0301
-1E56>0050 0307
-1E57>0070 0307
-1E58>0052 0307
-1E59>0072 0307
-1E5A>0052 0323
-1E5B>0072 0323
-1E5C>1E5A 0304
-1E5D>1E5B 0304
-1E5E>0052 0331
-1E5F>0072 0331
-1E60>0053 0307
-1E61>0073 0307
-1E62>0053 0323
-1E63>0073 0323
-1E64>015A 0307
-1E65>015B 0307
-1E66>0160 0307
-1E67>0161 0307
-1E68>1E62 0307
-1E69>1E63 0307
-1E6A>0054 0307
-1E6B>0074 0307
-1E6C>0054 0323
-1E6D>0074 0323
-1E6E>0054 0331
-1E6F>0074 0331
-1E70>0054 032D
-1E71>0074 032D
-1E72>0055 0324
-1E73>0075 0324
-1E74>0055 0330
-1E75>0075 0330
-1E76>0055 032D
-1E77>0075 032D
-1E78>0168 0301
-1E79>0169 0301
-1E7A>016A 0308
-1E7B>016B 0308
-1E7C>0056 0303
-1E7D>0076 0303
-1E7E>0056 0323
-1E7F>0076 0323
-1E80>0057 0300
-1E81>0077 0300
-1E82>0057 0301
-1E83>0077 0301
-1E84>0057 0308
-1E85>0077 0308
-1E86>0057 0307
-1E87>0077 0307
-1E88>0057 0323
-1E89>0077 0323
-1E8A>0058 0307
-1E8B>0078 0307
-1E8C>0058 0308
-1E8D>0078 0308
-1E8E>0059 0307
-1E8F>0079 0307
-1E90>005A 0302
-1E91>007A 0302
-1E92>005A 0323
-1E93>007A 0323
-1E94>005A 0331
-1E95>007A 0331
-1E96>0068 0331
-1E97>0074 0308
-1E98>0077 030A
-1E99>0079 030A
 1E9A>0061 02BE
-1E9B>017F 0307
-1EA0>0041 0323
-1EA1>0061 0323
-1EA2>0041 0309
-1EA3>0061 0309
-1EA4>00C2 0301
-1EA5>00E2 0301
-1EA6>00C2 0300
-1EA7>00E2 0300
-1EA8>00C2 0309
-1EA9>00E2 0309
-1EAA>00C2 0303
-1EAB>00E2 0303
-1EAC>1EA0 0302
-1EAD>1EA1 0302
-1EAE>0102 0301
-1EAF>0103 0301
-1EB0>0102 0300
-1EB1>0103 0300
-1EB2>0102 0309
-1EB3>0103 0309
-1EB4>0102 0303
-1EB5>0103 0303
-1EB6>1EA0 0306
-1EB7>1EA1 0306
-1EB8>0045 0323
-1EB9>0065 0323
-1EBA>0045 0309
-1EBB>0065 0309
-1EBC>0045 0303
-1EBD>0065 0303
-1EBE>00CA 0301
-1EBF>00EA 0301
-1EC0>00CA 0300
-1EC1>00EA 0300
-1EC2>00CA 0309
-1EC3>00EA 0309
-1EC4>00CA 0303
-1EC5>00EA 0303
-1EC6>1EB8 0302
-1EC7>1EB9 0302
-1EC8>0049 0309
-1EC9>0069 0309
-1ECA>0049 0323
-1ECB>0069 0323
-1ECC>004F 0323
-1ECD>006F 0323
-1ECE>004F 0309
-1ECF>006F 0309
-1ED0>00D4 0301
-1ED1>00F4 0301
-1ED2>00D4 0300
-1ED3>00F4 0300
-1ED4>00D4 0309
-1ED5>00F4 0309
-1ED6>00D4 0303
-1ED7>00F4 0303
-1ED8>1ECC 0302
-1ED9>1ECD 0302
-1EDA>01A0 0301
-1EDB>01A1 0301
-1EDC>01A0 0300
-1EDD>01A1 0300
-1EDE>01A0 0309
-1EDF>01A1 0309
-1EE0>01A0 0303
-1EE1>01A1 0303
-1EE2>01A0 0323
-1EE3>01A1 0323
-1EE4>0055 0323
-1EE5>0075 0323
-1EE6>0055 0309
-1EE7>0075 0309
-1EE8>01AF 0301
-1EE9>01B0 0301
-1EEA>01AF 0300
-1EEB>01B0 0300
-1EEC>01AF 0309
-1EED>01B0 0309
-1EEE>01AF 0303
-1EEF>01B0 0303
-1EF0>01AF 0323
-1EF1>01B0 0323
-1EF2>0059 0300
-1EF3>0079 0300
-1EF4>0059 0323
-1EF5>0079 0323
-1EF6>0059 0309
-1EF7>0079 0309
-1EF8>0059 0303
-1EF9>0079 0303
-1F00>03B1 0313
-1F01>03B1 0314
-1F02>1F00 0300
-1F03>1F01 0300
-1F04>1F00 0301
-1F05>1F01 0301
-1F06>1F00 0342
-1F07>1F01 0342
-1F08>0391 0313
-1F09>0391 0314
-1F0A>1F08 0300
-1F0B>1F09 0300
-1F0C>1F08 0301
-1F0D>1F09 0301
-1F0E>1F08 0342
-1F0F>1F09 0342
-1F10>03B5 0313
-1F11>03B5 0314
-1F12>1F10 0300
-1F13>1F11 0300
-1F14>1F10 0301
-1F15>1F11 0301
-1F18>0395 0313
-1F19>0395 0314
-1F1A>1F18 0300
-1F1B>1F19 0300
-1F1C>1F18 0301
-1F1D>1F19 0301
-1F20>03B7 0313
-1F21>03B7 0314
-1F22>1F20 0300
-1F23>1F21 0300
-1F24>1F20 0301
-1F25>1F21 0301
-1F26>1F20 0342
-1F27>1F21 0342
-1F28>0397 0313
-1F29>0397 0314
-1F2A>1F28 0300
-1F2B>1F29 0300
-1F2C>1F28 0301
-1F2D>1F29 0301
-1F2E>1F28 0342
-1F2F>1F29 0342
-1F30>03B9 0313
-1F31>03B9 0314
-1F32>1F30 0300
-1F33>1F31 0300
-1F34>1F30 0301
-1F35>1F31 0301
-1F36>1F30 0342
-1F37>1F31 0342
-1F38>0399 0313
-1F39>0399 0314
-1F3A>1F38 0300
-1F3B>1F39 0300
-1F3C>1F38 0301
-1F3D>1F39 0301
-1F3E>1F38 0342
-1F3F>1F39 0342
-1F40>03BF 0313
-1F41>03BF 0314
-1F42>1F40 0300
-1F43>1F41 0300
-1F44>1F40 0301
-1F45>1F41 0301
-1F48>039F 0313
-1F49>039F 0314
-1F4A>1F48 0300
-1F4B>1F49 0300
-1F4C>1F48 0301
-1F4D>1F49 0301
-1F50>03C5 0313
-1F51>03C5 0314
-1F52>1F50 0300
-1F53>1F51 0300
-1F54>1F50 0301
-1F55>1F51 0301
-1F56>1F50 0342
-1F57>1F51 0342
-1F59>03A5 0314
-1F5B>1F59 0300
-1F5D>1F59 0301
-1F5F>1F59 0342
-1F60>03C9 0313
-1F61>03C9 0314
-1F62>1F60 0300
-1F63>1F61 0300
-1F64>1F60 0301
-1F65>1F61 0301
-1F66>1F60 0342
-1F67>1F61 0342
-1F68>03A9 0313
-1F69>03A9 0314
-1F6A>1F68 0300
-1F6B>1F69 0300
-1F6C>1F68 0301
-1F6D>1F69 0301
-1F6E>1F68 0342
-1F6F>1F69 0342
-1F70>03B1 0300
-1F71>03AC
-1F72>03B5 0300
-1F73>03AD
-1F74>03B7 0300
-1F75>03AE
-1F76>03B9 0300
-1F77>03AF
-1F78>03BF 0300
-1F79>03CC
-1F7A>03C5 0300
-1F7B>03CD
-1F7C>03C9 0300
-1F7D>03CE
-1F80=1F00 0345
-1F81=1F01 0345
-1F82=1F02 0345
-1F83=1F03 0345
-1F84=1F04 0345
-1F85=1F05 0345
-1F86=1F06 0345
-1F87=1F07 0345
-1F88=1F08 0345
-1F89=1F09 0345
-1F8A=1F0A 0345
-1F8B=1F0B 0345
-1F8C=1F0C 0345
-1F8D=1F0D 0345
-1F8E=1F0E 0345
-1F8F=1F0F 0345
-1F90=1F20 0345
-1F91=1F21 0345
-1F92=1F22 0345
-1F93=1F23 0345
-1F94=1F24 0345
-1F95=1F25 0345
-1F96=1F26 0345
-1F97=1F27 0345
-1F98=1F28 0345
-1F99=1F29 0345
-1F9A=1F2A 0345
-1F9B=1F2B 0345
-1F9C=1F2C 0345
-1F9D=1F2D 0345
-1F9E=1F2E 0345
-1F9F=1F2F 0345
-1FA0=1F60 0345
-1FA1=1F61 0345
-1FA2=1F62 0345
-1FA3=1F63 0345
-1FA4=1F64 0345
-1FA5=1F65 0345
-1FA6=1F66 0345
-1FA7=1F67 0345
-1FA8=1F68 0345
-1FA9=1F69 0345
-1FAA=1F6A 0345
-1FAB=1F6B 0345
-1FAC=1F6C 0345
-1FAD=1F6D 0345
-1FAE=1F6E 0345
-1FAF=1F6F 0345
-1FB0>03B1 0306
-1FB1>03B1 0304
-1FB2=1F70 0345
-1FB3=03B1 0345
-1FB4=03AC 0345
-1FB6>03B1 0342
-1FB7=1FB6 0345
-1FB8>0391 0306
-1FB9>0391 0304
-1FBA>0391 0300
-1FBB>0386
-1FBC=0391 0345
+1E9B>017F 0307  # NFC round-trip, NFKC one-way
 1FBD>0020 0313
-1FBE>03B9
 1FBF>0020 0313
 1FC0>0020 0342
-1FC1>00A8 0342
-1FC2=1F74 0345
-1FC3=03B7 0345
-1FC4=03AE 0345
-1FC6>03B7 0342
-1FC7=1FC6 0345
-1FC8>0395 0300
-1FC9>0388
-1FCA>0397 0300
-1FCB>0389
-1FCC=0397 0345
-1FCD>1FBF 0300
-1FCE>1FBF 0301
-1FCF>1FBF 0342
-1FD0>03B9 0306
-1FD1>03B9 0304
-1FD2>03CA 0300
-1FD3>0390
-1FD6>03B9 0342
-1FD7>03CA 0342
-1FD8>0399 0306
-1FD9>0399 0304
-1FDA>0399 0300
-1FDB>038A
-1FDD>1FFE 0300
-1FDE>1FFE 0301
-1FDF>1FFE 0342
-1FE0>03C5 0306
-1FE1>03C5 0304
-1FE2>03CB 0300
-1FE3>03B0
-1FE4>03C1 0313
-1FE5>03C1 0314
-1FE6>03C5 0342
-1FE7>03CB 0342
-1FE8>03A5 0306
-1FE9>03A5 0304
-1FEA>03A5 0300
-1FEB>038E
-1FEC>03A1 0314
-1FED>00A8 0300
-1FEE>0385
-1FEF>0060
-1FF2=1F7C 0345
-1FF3=03C9 0345
-1FF4=03CE 0345
-1FF6>03C9 0342
-1FF7=1FF6 0345
-1FF8>039F 0300
-1FF9>038C
-1FFA>03A9 0300
-1FFB>038F
-1FFC=03A9 0345
-1FFD>00B4
+1FC1>00A8 0342  # NFC round-trip, NFKC one-way
+1FCD>1FBF 0300  # NFC round-trip, NFKC one-way
+1FCE>1FBF 0301  # NFC round-trip, NFKC one-way
+1FCF>1FBF 0342  # NFC round-trip, NFKC one-way
+1FDD>1FFE 0300  # NFC round-trip, NFKC one-way
+1FDE>1FFE 0301  # NFC round-trip, NFKC one-way
+1FDF>1FFE 0342  # NFC round-trip, NFKC one-way
+1FED>00A8 0300  # NFC round-trip, NFKC one-way
 1FFE>0020 0314
-2000>2002
-2001>2003
 2002>0020
 2003>0020
 2004>0020
@@ -1471,10 +304,7 @@ FE20..FE26:230
 2121>0054 0045 004C
 2122>0054 004D
 2124>005A
-2126>03A9
 2128>005A
-212A>004B
-212B>00C5
 212C>0042
 212D>0043
 212F>0065
@@ -1547,56 +377,10 @@ FE20..FE26:230
 217E>0064
 217F>006D
 2189>0030 2044 0033
-219A>2190 0338
-219B>2192 0338
-21AE>2194 0338
-21CD>21D0 0338
-21CE>21D4 0338
-21CF>21D2 0338
-2204>2203 0338
-2209>2208 0338
-220C>220B 0338
-2224>2223 0338
-2226>2225 0338
 222C>222B 222B
 222D>222B 222B 222B
 222F>222E 222E
 2230>222E 222E 222E
-2241>223C 0338
-2244>2243 0338
-2247>2245 0338
-2249>2248 0338
-2260>003D 0338
-2262>2261 0338
-226D>224D 0338
-226E>003C 0338
-226F>003E 0338
-2270>2264 0338
-2271>2265 0338
-2274>2272 0338
-2275>2273 0338
-2278>2276 0338
-2279>2277 0338
-2280>227A 0338
-2281>227B 0338
-2284>2282 0338
-2285>2283 0338
-2288>2286 0338
-2289>2287 0338
-22AC>22A2 0338
-22AD>22A8 0338
-22AE>22A9 0338
-22AF>22AB 0338
-22E0>227C 0338
-22E1>227D 0338
-22E2>2291 0338
-22E3>2292 0338
-22EA>22B2 0338
-22EB>22B3 0338
-22EC>22B4 0338
-22ED>22B5 0338
-2329>3008
-232A>3009
 2460>0031
 2461>0032
 2462>0033
@@ -1740,7 +524,6 @@ FE20..FE26:230
 2A74>003A 003A 003D
 2A75>003D 003D
 2A76>003D 003D 003D
-2ADC>2ADD 0338
 2C7C>006A
 2C7D>0056
 2D6F>2D61
@@ -1965,67 +748,9 @@ FE20..FE26:230
 3038>5341
 3039>5344
 303A>5345
-304C>304B 3099
-304E>304D 3099
-3050>304F 3099
-3052>3051 3099
-3054>3053 3099
-3056>3055 3099
-3058>3057 3099
-305A>3059 3099
-305C>305B 3099
-305E>305D 3099
-3060>305F 3099
-3062>3061 3099
-3065>3064 3099
-3067>3066 3099
-3069>3068 3099
-3070>306F 3099
-3071>306F 309A
-3073>3072 3099
-3074>3072 309A
-3076>3075 3099
-3077>3075 309A
-3079>3078 3099
-307A>3078 309A
-307C>307B 3099
-307D>307B 309A
-3094>3046 3099
 309B>0020 3099
 309C>0020 309A
-309E>309D 3099
 309F>3088 308A
-30AC>30AB 3099
-30AE>30AD 3099
-30B0>30AF 3099
-30B2>30B1 3099
-30B4>30B3 3099
-30B6>30B5 3099
-30B8>30B7 3099
-30BA>30B9 3099
-30BC>30BB 3099
-30BE>30BD 3099
-30C0>30BF 3099
-30C2>30C1 3099
-30C5>30C4 3099
-30C7>30C6 3099
-30C9>30C8 3099
-30D0>30CF 3099
-30D1>30CF 309A
-30D3>30D2 3099
-30D4>30D2 309A
-30D6>30D5 3099
-30D7>30D5 309A
-30D9>30D8 3099
-30DA>30D8 309A
-30DC>30DB 3099
-30DD>30DB 309A
-30F4>30A6 3099
-30F7>30EF 3099
-30F8>30F0 3099
-30F9>30F1 3099
-30FA>30F2 3099
-30FE>30FD 3099
 30FF>30B3 30C8
 3131>1100
 3132>1101
@@ -2637,464 +1362,8 @@ FE20..FE26:230
 33FE>0033 0031 65E5
 33FF>0067 0061 006C
 A770>A76F
-F900>8C48
-F901>66F4
-F902>8ECA
-F903>8CC8
-F904>6ED1
-F905>4E32
-F906>53E5
-F907>9F9C
-F908>9F9C
-F909>5951
-F90A>91D1
-F90B>5587
-F90C>5948
-F90D>61F6
-F90E>7669
-F90F>7F85
-F910>863F
-F911>87BA
-F912>88F8
-F913>908F
-F914>6A02
-F915>6D1B
-F916>70D9
-F917>73DE
-F918>843D
-F919>916A
-F91A>99F1
-F91B>4E82
-F91C>5375
-F91D>6B04
-F91E>721B
-F91F>862D
-F920>9E1E
-F921>5D50
-F922>6FEB
-F923>85CD
-F924>8964
-F925>62C9
-F926>81D8
-F927>881F
-F928>5ECA
-F929>6717
-F92A>6D6A
-F92B>72FC
-F92C>90CE
-F92D>4F86
-F92E>51B7
-F92F>52DE
-F930>64C4
-F931>6AD3
-F932>7210
-F933>76E7
-F934>8001
-F935>8606
-F936>865C
-F937>8DEF
-F938>9732
-F939>9B6F
-F93A>9DFA
-F93B>788C
-F93C>797F
-F93D>7DA0
-F93E>83C9
-F93F>9304
-F940>9E7F
-F941>8AD6
-F942>58DF
-F943>5F04
-F944>7C60
-F945>807E
-F946>7262
-F947>78CA
-F948>8CC2
-F949>96F7
-F94A>58D8
-F94B>5C62
-F94C>6A13
-F94D>6DDA
-F94E>6F0F
-F94F>7D2F
-F950>7E37
-F951>964B
-F952>52D2
-F953>808B
-F954>51DC
-F955>51CC
-F956>7A1C
-F957>7DBE
-F958>83F1
-F959>9675
-F95A>8B80
-F95B>62CF
-F95C>6A02
-F95D>8AFE
-F95E>4E39
-F95F>5BE7
-F960>6012
-F961>7387
-F962>7570
-F963>5317
-F964>78FB
-F965>4FBF
-F966>5FA9
-F967>4E0D
-F968>6CCC
-F969>6578
-F96A>7D22
-F96B>53C3
-F96C>585E
-F96D>7701
-F96E>8449
-F96F>8AAA
-F970>6BBA
-F971>8FB0
-F972>6C88
-F973>62FE
-F974>82E5
-F975>63A0
-F976>7565
-F977>4EAE
-F978>5169
-F979>51C9
-F97A>6881
-F97B>7CE7
-F97C>826F
-F97D>8AD2
-F97E>91CF
-F97F>52F5
-F980>5442
-F981>5973
-F982>5EEC
-F983>65C5
-F984>6FFE
-F985>792A
-F986>95AD
-F987>9A6A
-F988>9E97
-F989>9ECE
-F98A>529B
-F98B>66C6
-F98C>6B77
-F98D>8F62
-F98E>5E74
-F98F>6190
-F990>6200
-F991>649A
-F992>6F23
-F993>7149
-F994>7489
-F995>79CA
-F996>7DF4
-F997>806F
-F998>8F26
-F999>84EE
-F99A>9023
-F99B>934A
-F99C>5217
-F99D>52A3
-F99E>54BD
-F99F>70C8
-F9A0>88C2
-F9A1>8AAA
-F9A2>5EC9
-F9A3>5FF5
-F9A4>637B
-F9A5>6BAE
-F9A6>7C3E
-F9A7>7375
-F9A8>4EE4
-F9A9>56F9
-F9AA>5BE7
-F9AB>5DBA
-F9AC>601C
-F9AD>73B2
-F9AE>7469
-F9AF>7F9A
-F9B0>8046
-F9B1>9234
-F9B2>96F6
-F9B3>9748
-F9B4>9818
-F9B5>4F8B
-F9B6>79AE
-F9B7>91B4
-F9B8>96B8
-F9B9>60E1
-F9BA>4E86
-F9BB>50DA
-F9BC>5BEE
-F9BD>5C3F
-F9BE>6599
-F9BF>6A02
-F9C0>71CE
-F9C1>7642
-F9C2>84FC
-F9C3>907C
-F9C4>9F8D
-F9C5>6688
-F9C6>962E
-F9C7>5289
-F9C8>677B
-F9C9>67F3
-F9CA>6D41
-F9CB>6E9C
-F9CC>7409
-F9CD>7559
-F9CE>786B
-F9CF>7D10
-F9D0>985E
-F9D1>516D
-F9D2>622E
-F9D3>9678
-F9D4>502B
-F9D5>5D19
-F9D6>6DEA
-F9D7>8F2A
-F9D8>5F8B
-F9D9>6144
-F9DA>6817
-F9DB>7387
-F9DC>9686
-F9DD>5229
-F9DE>540F
-F9DF>5C65
-F9E0>6613
-F9E1>674E
-F9E2>68A8
-F9E3>6CE5
-F9E4>7406
-F9E5>75E2
-F9E6>7F79
-F9E7>88CF
-F9E8>88E1
-F9E9>91CC
-F9EA>96E2
-F9EB>533F
-F9EC>6EBA
-F9ED>541D
-F9EE>71D0
-F9EF>7498
-F9F0>85FA
-F9F1>96A3
-F9F2>9C57
-F9F3>9E9F
-F9F4>6797
-F9F5>6DCB
-F9F6>81E8
-F9F7>7ACB
-F9F8>7B20
-F9F9>7C92
-F9FA>72C0
-F9FB>7099
-F9FC>8B58
-F9FD>4EC0
-F9FE>8336
-F9FF>523A
-FA00>5207
-FA01>5EA6
-FA02>62D3
-FA03>7CD6
-FA04>5B85
-FA05>6D1E
-FA06>66B4
-FA07>8F3B
-FA08>884C
-FA09>964D
-FA0A>898B
-FA0B>5ED3
-FA0C>5140
-FA0D>55C0
-FA10>585A
-FA12>6674
-FA15>51DE
-FA16>732A
-FA17>76CA
-FA18>793C
-FA19>795E
-FA1A>7965
-FA1B>798F
-FA1C>9756
-FA1D>7CBE
-FA1E>7FBD
-FA20>8612
-FA22>8AF8
-FA25>9038
-FA26>90FD
-FA2A>98EF
-FA2B>98FC
-FA2C>9928
-FA2D>9DB4
-FA30>4FAE
-FA31>50E7
-FA32>514D
-FA33>52C9
-FA34>52E4
-FA35>5351
-FA36>559D
-FA37>5606
-FA38>5668
-FA39>5840
-FA3A>58A8
-FA3B>5C64
-FA3C>5C6E
-FA3D>6094
-FA3E>6168
-FA3F>618E
-FA40>61F2
-FA41>654F
-FA42>65E2
-FA43>6691
-FA44>6885
-FA45>6D77
-FA46>6E1A
-FA47>6F22
-FA48>716E
-FA49>722B
-FA4A>7422
-FA4B>7891
-FA4C>793E
-FA4D>7949
-FA4E>7948
-FA4F>7950
-FA50>7956
-FA51>795D
-FA52>798D
-FA53>798E
-FA54>7A40
-FA55>7A81
-FA56>7BC0
-FA57>7DF4
-FA58>7E09
-FA59>7E41
-FA5A>7F72
-FA5B>8005
-FA5C>81ED
-FA5D>8279
-FA5E>8279
-FA5F>8457
-FA60>8910
-FA61>8996
-FA62>8B01
-FA63>8B39
-FA64>8CD3
-FA65>8D08
-FA66>8FB6
-FA67>9038
-FA68>96E3
-FA69>97FF
-FA6A>983B
-FA6B>6075
-FA6C>242EE
-FA6D>8218
-FA70>4E26
-FA71>51B5
-FA72>5168
-FA73>4F80
-FA74>5145
-FA75>5180
-FA76>52C7
-FA77>52FA
-FA78>559D
-FA79>5555
-FA7A>5599
-FA7B>55E2
-FA7C>585A
-FA7D>58B3
-FA7E>5944
-FA7F>5954
-FA80>5A62
-FA81>5B28
-FA82>5ED2
-FA83>5ED9
-FA84>5F69
-FA85>5FAD
-FA86>60D8
-FA87>614E
-FA88>6108
-FA89>618E
-FA8A>6160
-FA8B>61F2
-FA8C>6234
-FA8D>63C4
-FA8E>641C
-FA8F>6452
-FA90>6556
-FA91>6674
-FA92>6717
-FA93>671B
-FA94>6756
-FA95>6B79
-FA96>6BBA
-FA97>6D41
-FA98>6EDB
-FA99>6ECB
-FA9A>6F22
-FA9B>701E
-FA9C>716E
-FA9D>77A7
-FA9E>7235
-FA9F>72AF
-FAA0>732A
-FAA1>7471
-FAA2>7506
-FAA3>753B
-FAA4>761D
-FAA5>761F
-FAA6>76CA
-FAA7>76DB
-FAA8>76F4
-FAA9>774A
-FAAA>7740
-FAAB>78CC
-FAAC>7AB1
-FAAD>7BC0
-FAAE>7C7B
-FAAF>7D5B
-FAB0>7DF4
-FAB1>7F3E
-FAB2>8005
-FAB3>8352
-FAB4>83EF
-FAB5>8779
-FAB6>8941
-FAB7>8986
-FAB8>8996
-FAB9>8ABF
-FABA>8AF8
-FABB>8ACB
-FABC>8B01
-FABD>8AFE
-FABE>8AED
-FABF>8B39
-FAC0>8B8A
-FAC1>8D08
-FAC2>8F38
-FAC3>9072
-FAC4>9199
-FAC5>9276
-FAC6>967C
-FAC7>96E3
-FAC8>9756
-FAC9>97DB
-FACA>97FF
-FACB>980B
-FACC>983B
-FACD>9B12
-FACE>9F9C
-FACF>2284A
-FAD0>22844
-FAD1>233D5
-FAD2>3B9D
-FAD3>4018
-FAD4>4039
-FAD5>25249
-FAD6>25CD0
-FAD7>27ED3
-FAD8>9F43
-FAD9>9F8E
+A7F8>0126
+A7F9>0153
 FB00>0066 0066
 FB01>0066 0069
 FB02>0066 006C
@@ -3107,8 +1376,6 @@ FB14>0574 0565
 FB15>0574 056B
 FB16>057E 0576
 FB17>0574 056D
-FB1D>05D9 05B4
-FB1F>05F2 05B7
 FB20>05E2
 FB21>05D0
 FB22>05D3
@@ -3119,38 +1386,6 @@ FB26>05DD
 FB27>05E8
 FB28>05EA
 FB29>002B
-FB2A>05E9 05C1
-FB2B>05E9 05C2
-FB2C>FB49 05C1
-FB2D>FB49 05C2
-FB2E>05D0 05B7
-FB2F>05D0 05B8
-FB30>05D0 05BC
-FB31>05D1 05BC
-FB32>05D2 05BC
-FB33>05D3 05BC
-FB34>05D4 05BC
-FB35>05D5 05BC
-FB36>05D6 05BC
-FB38>05D8 05BC
-FB39>05D9 05BC
-FB3A>05DA 05BC
-FB3B>05DB 05BC
-FB3C>05DC 05BC
-FB3E>05DE 05BC
-FB40>05E0 05BC
-FB41>05E1 05BC
-FB43>05E3 05BC
-FB44>05E4 05BC
-FB46>05E6 05BC
-FB47>05E7 05BC
-FB48>05E8 05BC
-FB49>05E9 05BC
-FB4A>05EA 05BC
-FB4B>05D5 05B9
-FB4C>05D1 05BF
-FB4D>05DB 05BF
-FB4E>05E4 05BF
 FB4F>05D0 05DC
 FB50>0671
 FB51>0671
@@ -4174,22 +2409,6 @@ FFEB>2192
 FFEC>2193
 FFED>25A0
 FFEE>25CB
-1109A>11099 110BA
-1109C>1109B 110BA
-110AB>110A5 110BA
-1D15E>1D157 1D165
-1D15F>1D158 1D165
-1D160>1D15F 1D16E
-1D161>1D15F 1D16F
-1D162>1D15F 1D170
-1D163>1D15F 1D171
-1D164>1D15F 1D172
-1D1BB>1D1B9 1D165
-1D1BC>1D1BA 1D165
-1D1BD>1D1BB 1D16E
-1D1BE>1D1BC 1D16E
-1D1BF>1D1BB 1D16F
-1D1C0>1D1BC 1D16F
 1D400>0041
 1D401>0042
 1D402>0043
@@ -5186,6 +3405,147 @@ FFEE>25CB
 1D7FD>0037
 1D7FE>0038
 1D7FF>0039
+1EE00>0627
+1EE01>0628
+1EE02>062C
+1EE03>062F
+1EE05>0648
+1EE06>0632
+1EE07>062D
+1EE08>0637
+1EE09>064A
+1EE0A>0643
+1EE0B>0644
+1EE0C>0645
+1EE0D>0646
+1EE0E>0633
+1EE0F>0639
+1EE10>0641
+1EE11>0635
+1EE12>0642
+1EE13>0631
+1EE14>0634
+1EE15>062A
+1EE16>062B
+1EE17>062E
+1EE18>0630
+1EE19>0636
+1EE1A>0638
+1EE1B>063A
+1EE1C>066E
+1EE1D>06BA
+1EE1E>06A1
+1EE1F>066F
+1EE21>0628
+1EE22>062C
+1EE24>0647
+1EE27>062D
+1EE29>064A
+1EE2A>0643
+1EE2B>0644
+1EE2C>0645
+1EE2D>0646
+1EE2E>0633
+1EE2F>0639
+1EE30>0641
+1EE31>0635
+1EE32>0642
+1EE34>0634
+1EE35>062A
+1EE36>062B
+1EE37>062E
+1EE39>0636
+1EE3B>063A
+1EE42>062C
+1EE47>062D
+1EE49>064A
+1EE4B>0644
+1EE4D>0646
+1EE4E>0633
+1EE4F>0639
+1EE51>0635
+1EE52>0642
+1EE54>0634
+1EE57>062E
+1EE59>0636
+1EE5B>063A
+1EE5D>06BA
+1EE5F>066F
+1EE61>0628
+1EE62>062C
+1EE64>0647
+1EE67>062D
+1EE68>0637
+1EE69>064A
+1EE6A>0643
+1EE6C>0645
+1EE6D>0646
+1EE6E>0633
+1EE6F>0639
+1EE70>0641
+1EE71>0635
+1EE72>0642
+1EE74>0634
+1EE75>062A
+1EE76>062B
+1EE77>062E
+1EE79>0636
+1EE7A>0638
+1EE7B>063A
+1EE7C>066E
+1EE7E>06A1
+1EE80>0627
+1EE81>0628
+1EE82>062C
+1EE83>062F
+1EE84>0647
+1EE85>0648
+1EE86>0632
+1EE87>062D
+1EE88>0637
+1EE89>064A
+1EE8B>0644
+1EE8C>0645
+1EE8D>0646
+1EE8E>0633
+1EE8F>0639
+1EE90>0641
+1EE91>0635
+1EE92>0642
+1EE93>0631
+1EE94>0634
+1EE95>062A
+1EE96>062B
+1EE97>062E
+1EE98>0630
+1EE99>0636
+1EE9A>0638
+1EE9B>063A
+1EEA1>0628
+1EEA2>062C
+1EEA3>062F
+1EEA5>0648
+1EEA6>0632
+1EEA7>062D
+1EEA8>0637
+1EEA9>064A
+1EEAB>0644
+1EEAC>0645
+1EEAD>0646
+1EEAE>0633
+1EEAF>0639
+1EEB0>0641
+1EEB1>0635
+1EEB2>0642
+1EEB3>0631
+1EEB4>0634
+1EEB5>062A
+1EEB6>062B
+1EEB7>062E
+1EEB8>0630
+1EEB9>0636
+1EEBA>0638
+1EEBB>063A
 1F100>0030 002E
 1F101>0030 002C
 1F102>0031 002C
@@ -5260,6 +3620,8 @@ FFEE>25CB
 1F14D>0053 0053
 1F14E>0050 0050 0056
 1F14F>0057 0043
+1F16A>004D 0043
+1F16B>004D 0044
 1F190>0044 004A
 1F200>307B 304B
 1F201>30B3 30B3
@@ -5318,545 +3680,3 @@ FFEE>25CB
 1F248>3014 6557 3015
 1F250>5F97
 1F251>53EF
-2F800>4E3D
-2F801>4E38
-2F802>4E41
-2F803>20122
-2F804>4F60
-2F805>4FAE
-2F806>4FBB
-2F807>5002
-2F808>507A
-2F809>5099
-2F80A>50E7
-2F80B>50CF
-2F80C>349E
-2F80D>2063A
-2F80E>514D
-2F80F>5154
-2F810>5164
-2F811>5177
-2F812>2051C
-2F813>34B9
-2F814>5167
-2F815>518D
-2F816>2054B
-2F817>5197
-2F818>51A4
-2F819>4ECC
-2F81A>51AC
-2F81B>51B5
-2F81C>291DF
-2F81D>51F5
-2F81E>5203
-2F81F>34DF
-2F820>523B
-2F821>5246
-2F822>5272
-2F823>5277
-2F824>3515
-2F825>52C7
-2F826>52C9
-2F827>52E4
-2F828>52FA
-2F829>5305
-2F82A>5306
-2F82B>5317
-2F82C>5349
-2F82D>5351
-2F82E>535A
-2F82F>5373
-2F830>537D
-2F831>537F
-2F832>537F
-2F833>537F
-2F834>20A2C
-2F835>7070
-2F836>53CA
-2F837>53DF
-2F838>20B63
-2F839>53EB
-2F83A>53F1
-2F83B>5406
-2F83C>549E
-2F83D>5438
-2F83E>5448
-2F83F>5468
-2F840>54A2
-2F841>54F6
-2F842>5510
-2F843>5553
-2F844>5563
-2F845>5584
-2F846>5584
-2F847>5599
-2F848>55AB
-2F849>55B3
-2F84A>55C2
-2F84B>5716
-2F84C>5606
-2F84D>5717
-2F84E>5651
-2F84F>5674
-2F850>5207
-2F851>58EE
-2F852>57CE
-2F853>57F4
-2F854>580D
-2F855>578B
-2F856>5832
-2F857>5831
-2F858>58AC
-2F859>214E4
-2F85A>58F2
-2F85B>58F7
-2F85C>5906
-2F85D>591A
-2F85E>5922
-2F85F>5962
-2F860>216A8
-2F861>216EA
-2F862>59EC
-2F863>5A1B
-2F864>5A27
-2F865>59D8
-2F866>5A66
-2F867>36EE
-2F868>36FC
-2F869>5B08
-2F86A>5B3E
-2F86B>5B3E
-2F86C>219C8
-2F86D>5BC3
-2F86E>5BD8
-2F86F>5BE7
-2F870>5BF3
-2F871>21B18
-2F872>5BFF
-2F873>5C06
-2F874>5F53
-2F875>5C22
-2F876>3781
-2F877>5C60
-2F878>5C6E
-2F879>5CC0
-2F87A>5C8D
-2F87B>21DE4
-2F87C>5D43
-2F87D>21DE6
-2F87E>5D6E
-2F87F>5D6B
-2F880>5D7C
-2F881>5DE1
-2F882>5DE2
-2F883>382F
-2F884>5DFD
-2F885>5E28
-2F886>5E3D
-2F887>5E69
-2F888>3862
-2F889>22183
-2F88A>387C
-2F88B>5EB0
-2F88C>5EB3
-2F88D>5EB6
-2F88E>5ECA
-2F88F>2A392
-2F890>5EFE
-2F891>22331
-2F892>22331
-2F893>8201
-2F894>5F22
-2F895>5F22
-2F896>38C7
-2F897>232B8
-2F898>261DA
-2F899>5F62
-2F89A>5F6B
-2F89B>38E3
-2F89C>5F9A
-2F89D>5FCD
-2F89E>5FD7
-2F89F>5FF9
-2F8A0>6081
-2F8A1>393A
-2F8A2>391C
-2F8A3>6094
-2F8A4>226D4
-2F8A5>60C7
-2F8A6>6148
-2F8A7>614C
-2F8A8>614E
-2F8A9>614C
-2F8AA>617A
-2F8AB>618E
-2F8AC>61B2
-2F8AD>61A4
-2F8AE>61AF
-2F8AF>61DE
-2F8B0>61F2
-2F8B1>61F6
-2F8B2>6210
-2F8B3>621B
-2F8B4>625D
-2F8B5>62B1
-2F8B6>62D4
-2F8B7>6350
-2F8B8>22B0C
-2F8B9>633D
-2F8BA>62FC
-2F8BB>6368
-2F8BC>6383
-2F8BD>63E4
-2F8BE>22BF1
-2F8BF>6422
-2F8C0>63C5
-2F8C1>63A9
-2F8C2>3A2E
-2F8C3>6469
-2F8C4>647E
-2F8C5>649D
-2F8C6>6477
-2F8C7>3A6C
-2F8C8>654F
-2F8C9>656C
-2F8CA>2300A
-2F8CB>65E3
-2F8CC>66F8
-2F8CD>6649
-2F8CE>3B19
-2F8CF>6691
-2F8D0>3B08
-2F8D1>3AE4
-2F8D2>5192
-2F8D3>5195
-2F8D4>6700
-2F8D5>669C
-2F8D6>80AD
-2F8D7>43D9
-2F8D8>6717
-2F8D9>671B
-2F8DA>6721
-2F8DB>675E
-2F8DC>6753
-2F8DD>233C3
-2F8DE>3B49
-2F8DF>67FA
-2F8E0>6785
-2F8E1>6852
-2F8E2>6885
-2F8E3>2346D
-2F8E4>688E
-2F8E5>681F
-2F8E6>6914
-2F8E7>3B9D
-2F8E8>6942
-2F8E9>69A3
-2F8EA>69EA
-2F8EB>6AA8
-2F8EC>236A3
-2F8ED>6ADB
-2F8EE>3C18
-2F8EF>6B21
-2F8F0>238A7
-2F8F1>6B54
-2F8F2>3C4E
-2F8F3>6B72
-2F8F4>6B9F
-2F8F5>6BBA
-2F8F6>6BBB
-2F8F7>23A8D
-2F8F8>21D0B
-2F8F9>23AFA
-2F8FA>6C4E
-2F8FB>23CBC
-2F8FC>6CBF
-2F8FD>6CCD
-2F8FE>6C67
-2F8FF>6D16
-2F900>6D3E
-2F901>6D77
-2F902>6D41
-2F903>6D69
-2F904>6D78
-2F905>6D85
-2F906>23D1E
-2F907>6D34
-2F908>6E2F
-2F909>6E6E
-2F90A>3D33
-2F90B>6ECB
-2F90C>6EC7
-2F90D>23ED1
-2F90E>6DF9
-2F90F>6F6E
-2F910>23F5E
-2F911>23F8E
-2F912>6FC6
-2F913>7039
-2F914>701E
-2F915>701B
-2F916>3D96
-2F917>704A
-2F918>707D
-2F919>7077
-2F91A>70AD
-2F91B>20525
-2F91C>7145
-2F91D>24263
-2F91E>719C
-2F91F>243AB
-2F920>7228
-2F921>7235
-2F922>7250
-2F923>24608
-2F924>7280
-2F925>7295
-2F926>24735
-2F927>24814
-2F928>737A
-2F929>738B
-2F92A>3EAC
-2F92B>73A5
-2F92C>3EB8
-2F92D>3EB8
-2F92E>7447
-2F92F>745C
-2F930>7471
-2F931>7485
-2F932>74CA
-2F933>3F1B
-2F934>7524
-2F935>24C36
-2F936>753E
-2F937>24C92
-2F938>7570
-2F939>2219F
-2F93A>7610
-2F93B>24FA1
-2F93C>24FB8
-2F93D>25044
-2F93E>3FFC
-2F93F>4008
-2F940>76F4
-2F941>250F3
-2F942>250F2
-2F943>25119
-2F944>25133
-2F945>771E
-2F946>771F
-2F947>771F
-2F948>774A
-2F949>4039
-2F94A>778B
-2F94B>4046
-2F94C>4096
-2F94D>2541D
-2F94E>784E
-2F94F>788C
-2F950>78CC
-2F951>40E3
-2F952>25626
-2F953>7956
-2F954>2569A
-2F955>256C5
-2F956>798F
-2F957>79EB
-2F958>412F
-2F959>7A40
-2F95A>7A4A
-2F95B>7A4F
-2F95C>2597C
-2F95D>25AA7
-2F95E>25AA7
-2F95F>7AEE
-2F960>4202
-2F961>25BAB
-2F962>7BC6
-2F963>7BC9
-2F964>4227
-2F965>25C80
-2F966>7CD2
-2F967>42A0
-2F968>7CE8
-2F969>7CE3
-2F96A>7D00
-2F96B>25F86
-2F96C>7D63
-2F96D>4301
-2F96E>7DC7
-2F96F>7E02
-2F970>7E45
-2F971>4334
-2F972>26228
-2F973>26247
-2F974>4359
-2F975>262D9
-2F976>7F7A
-2F977>2633E
-2F978>7F95
-2F979>7FFA
-2F97A>8005
-2F97B>264DA
-2F97C>26523
-2F97D>8060
-2F97E>265A8
-2F97F>8070
-2F980>2335F
-2F981>43D5
-2F982>80B2
-2F983>8103
-2F984>440B
-2F985>813E
-2F986>5AB5
-2F987>267A7
-2F988>267B5
-2F989>23393
-2F98A>2339C
-2F98B>8201
-2F98C>8204
-2F98D>8F9E
-2F98E>446B
-2F98F>8291
-2F990>828B
-2F991>829D
-2F992>52B3
-2F993>82B1
-2F994>82B3
-2F995>82BD
-2F996>82E6
-2F997>26B3C
-2F998>82E5
-2F999>831D
-2F99A>8363
-2F99B>83AD
-2F99C>8323
-2F99D>83BD
-2F99E>83E7
-2F99F>8457
-2F9A0>8353
-2F9A1>83CA
-2F9A2>83CC
-2F9A3>83DC
-2F9A4>26C36
-2F9A5>26D6B
-2F9A6>26CD5
-2F9A7>452B
-2F9A8>84F1
-2F9A9>84F3
-2F9AA>8516
-2F9AB>273CA
-2F9AC>8564
-2F9AD>26F2C
-2F9AE>455D
-2F9AF>4561
-2F9B0>26FB1
-2F9B1>270D2
-2F9B2>456B
-2F9B3>8650
-2F9B4>865C
-2F9B5>8667
-2F9B6>8669
-2F9B7>86A9
-2F9B8>8688
-2F9B9>870E
-2F9BA>86E2
-2F9BB>8779
-2F9BC>8728
-2F9BD>876B
-2F9BE>8786
-2F9BF>45D7
-2F9C0>87E1
-2F9C1>8801
-2F9C2>45F9
-2F9C3>8860
-2F9C4>8863
-2F9C5>27667
-2F9C6>88D7
-2F9C7>88DE
-2F9C8>4635
-2F9C9>88FA
-2F9CA>34BB
-2F9CB>278AE
-2F9CC>27966
-2F9CD>46BE
-2F9CE>46C7
-2F9CF>8AA0
-2F9D0>8AED
-2F9D1>8B8A
-2F9D2>8C55
-2F9D3>27CA8
-2F9D4>8CAB
-2F9D5>8CC1
-2F9D6>8D1B
-2F9D7>8D77
-2F9D8>27F2F
-2F9D9>20804
-2F9DA>8DCB
-2F9DB>8DBC
-2F9DC>8DF0
-2F9DD>208DE
-2F9DE>8ED4
-2F9DF>8F38
-2F9E0>285D2
-2F9E1>285ED
-2F9E2>9094
-2F9E3>90F1
-2F9E4>9111
-2F9E5>2872E
-2F9E6>911B
-2F9E7>9238
-2F9E8>92D7
-2F9E9>92D8
-2F9EA>927C
-2F9EB>93F9
-2F9EC>9415
-2F9ED>28BFA
-2F9EE>958B
-2F9EF>4995
-2F9F0>95B7
-2F9F1>28D77
-2F9F2>49E6
-2F9F3>96C3
-2F9F4>5DB2
-2F9F5>9723
-2F9F6>29145
-2F9F7>2921A
-2F9F8>4A6E
-2F9F9>4A76
-2F9FA>97E0
-2F9FB>2940A
-2F9FC>4AB2
-2F9FD>29496
-2F9FE>980B
-2F9FF>980B
-2FA00>9829
-2FA01>295B6
-2FA02>98E2
-2FA03>4B33
-2FA04>9929
-2FA05>99A7
-2FA06>99C2
-2FA07>99FE
-2FA08>4BCE
-2FA09>29B30
-2FA0A>9B12
-2FA0B>9C40
-2FA0C>9CFD
-2FA0D>4CCE
-2FA0E>4CED
-2FA0F>9D67
-2FA10>2A0CE
-2FA11>4CF8
-2FA12>2A105
-2FA13>2A20E
-2FA14>2A291
-2FA15>9EBB
-2FA16>4D56
-2FA17>9EF9
-2FA18>9EFE
-2FA19>9F05
-2FA1A>9F0F
-2FA1B>9F16
-2FA1C>9F3B
-2FA1D>2A600

Modified: lucene/dev/branches/LUCENE-2878/lucene/analysis/icu/src/data/utr30/nfkc_cf.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/analysis/icu/src/data/utr30/nfkc_cf.txt?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/analysis/icu/src/data/utr30/nfkc_cf.txt (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/analysis/icu/src/data/utr30/nfkc_cf.txt Mon Aug 13 13:52:46 2012
@@ -1,52 +1,18 @@
-# Copyright 2001-2010 Unicode, Inc.
-# 
-# Disclaimer
-# 
-# This source code is provided as is by Unicode, Inc. No claims are
-# made as to fitness for any particular purpose. No warranties of any
-# kind are expressed or implied. The recipient agrees to determine
-# applicability of information provided. If this file has been
-# purchased on magnetic or optical media from Unicode, Inc., the
-# sole remedy for any claim will be exchange of defective media
-# within 90 days of receipt.
-# 
-# Limitations on Rights to Redistribute This Code
-# 
-# Unicode, Inc. hereby grants the right to freely use the information
-# supplied in this file in the creation of products supporting the
-# Unicode Standard, and to make copies of this file in any form
-# for internal or external distribution as long as this notice
-# remains attached.
-#
-# Extracted from:
-# DerivedNormalizationProps-6.0.0.txt
-# Date: 2010-05-20, 15:14:12 GMT [MD]
-#
 # Unicode Character Database
-# Copyright (c) 1991-2010 Unicode, Inc.
+# Copyright (c) 1991-2012 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 # For documentation, see http://www.unicode.org/reports/tr44/
+#
+# file name: nfkc_cf.txt
+#
+# machine-generated by ICU preparseucd.py
+#
+# This file contains the Unicode NFKC_CF mappings,
+# extracted from the UCD file DerivedNormalizationProps.txt,
+# and reformatted into syntax for the gennorm2 Normalizer2 data generator tool.
+# Use this file as the third gennorm2 input file after nfc.txt and nfkc.txt.
 
-# ================================================
-# This file has been reformatted into syntax for the
-# gennorm2 Normalizer2 data generator tool.
-# Only the NFKC_CF mappings are retained and reformatted.
-# Reformatting via regular expression: s/ *; NFKC_CF; */>/
-# Use this file as the second gennorm2 input file after nfkc.txt.
-# ================================================
-
-# Derived Property:   NFKC_Casefold (NFKC_CF)
-#   This property removes certain variations from characters: case, compatibility, and default-ignorables.
-#   It is used for loose matching and certain types of identifiers.
-#   It is constructed by applying NFKC, CaseFolding, and removal of Default_Ignorable_Code_Points.
-#   The process of applying these transformations is repeated until a stable result is produced.
-#   WARNING: Application to STRINGS must apply NFC after mapping each character, because characters may interact.
-#            For more information, see [http://www.unicode.org/reports/tr44/]
-# Omitted code points are unchanged by this mapping.
-# @missing: 0000..10FFFF; NFKC_CF; <code point>
-
-#  All code points not explicitly listed for NFKC_Casefold
-#  have the value <codepoint>.
+* Unicode 6.1.0
 
 0041>0061
 0042>0062
@@ -656,6 +622,8 @@
 10C3>2D23
 10C4>2D24
 10C5>2D25
+10C7>2D27
+10CD>2D2D
 10FC>10DC
 115F..1160>
 17B4..17B5>
@@ -1061,9 +1029,7 @@
 2049>0021 003F
 2057>2032 2032 2032 2032
 205F>0020
-2060..2064>
-2065..2069>
-206A..206F>
+2060..206F>
 2070>0030
 2071>0069
 2074>0034
@@ -1470,6 +1436,7 @@
 2CE2>2CE3
 2CEB>2CEC
 2CED>2CEE
+2CF2>2CF3
 2D6F>2D61
 2E9F>6BCD
 2EF3>9F9F
@@ -2390,11 +2357,15 @@ A786>A787
 A78B>A78C
 A78D>0265
 A790>A791
+A792>A793
 A7A0>A7A1
 A7A2>A7A3
 A7A4>A7A5
 A7A6>A7A7
 A7A8>A7A9
+A7AA>0266
+A7F8>0127
+A7F9>0153
 F900>8C48
 F901>66F4
 F902>8ECA
@@ -2684,6 +2655,8 @@ FA2A>98EF
 FA2B>98FC
 FA2C>9928
 FA2D>9DB4
+FA2E>90DE
+FA2F>96B7
 FA30>4FAE
 FA31>50E7
 FA32>514D
@@ -4773,6 +4746,147 @@ FFF0..FFF8>
 1D7FD>0037
 1D7FE>0038
 1D7FF>0039
+1EE00>0627
+1EE01>0628
+1EE02>062C
+1EE03>062F
+1EE05>0648
+1EE06>0632
+1EE07>062D
+1EE08>0637
+1EE09>064A
+1EE0A>0643
+1EE0B>0644
+1EE0C>0645
+1EE0D>0646
+1EE0E>0633
+1EE0F>0639
+1EE10>0641
+1EE11>0635
+1EE12>0642
+1EE13>0631
+1EE14>0634
+1EE15>062A
+1EE16>062B
+1EE17>062E
+1EE18>0630
+1EE19>0636
+1EE1A>0638
+1EE1B>063A
+1EE1C>066E
+1EE1D>06BA
+1EE1E>06A1
+1EE1F>066F
+1EE21>0628
+1EE22>062C
+1EE24>0647
+1EE27>062D
+1EE29>064A
+1EE2A>0643
+1EE2B>0644
+1EE2C>0645
+1EE2D>0646
+1EE2E>0633
+1EE2F>0639
+1EE30>0641
+1EE31>0635
+1EE32>0642
+1EE34>0634
+1EE35>062A
+1EE36>062B
+1EE37>062E
+1EE39>0636
+1EE3B>063A
+1EE42>062C
+1EE47>062D
+1EE49>064A
+1EE4B>0644
+1EE4D>0646
+1EE4E>0633
+1EE4F>0639
+1EE51>0635
+1EE52>0642
+1EE54>0634
+1EE57>062E
+1EE59>0636
+1EE5B>063A
+1EE5D>06BA
+1EE5F>066F
+1EE61>0628
+1EE62>062C
+1EE64>0647
+1EE67>062D
+1EE68>0637
+1EE69>064A
+1EE6A>0643
+1EE6C>0645
+1EE6D>0646
+1EE6E>0633
+1EE6F>0639
+1EE70>0641
+1EE71>0635
+1EE72>0642
+1EE74>0634
+1EE75>062A
+1EE76>062B
+1EE77>062E
+1EE79>0636
+1EE7A>0638
+1EE7B>063A
+1EE7C>066E
+1EE7E>06A1
+1EE80>0627
+1EE81>0628
+1EE82>062C
+1EE83>062F
+1EE84>0647
+1EE85>0648
+1EE86>0632
+1EE87>062D
+1EE88>0637
+1EE89>064A
+1EE8B>0644
+1EE8C>0645
+1EE8D>0646
+1EE8E>0633
+1EE8F>0639
+1EE90>0641
+1EE91>0635
+1EE92>0642
+1EE93>0631
+1EE94>0634
+1EE95>062A
+1EE96>062B
+1EE97>062E
+1EE98>0630
+1EE99>0636
+1EE9A>0638
+1EE9B>063A
+1EEA1>0628
+1EEA2>062C
+1EEA3>062F
+1EEA5>0648
+1EEA6>0632
+1EEA7>062D
+1EEA8>0637
+1EEA9>064A
+1EEAB>0644
+1EEAC>0645
+1EEAD>0646
+1EEAE>0633
+1EEAF>0639
+1EEB0>0641
+1EEB1>0635
+1EEB2>0642
+1EEB3>0631
+1EEB4>0634
+1EEB5>062A
+1EEB6>062B
+1EEB7>062E
+1EEB8>0630
+1EEB9>0636
+1EEBA>0638
+1EEBB>063A
 1F100>0030 002E
 1F101>0030 002C
 1F102>0031 002C
@@ -4847,6 +4961,8 @@ FFF0..FFF8>
 1F14D>0073 0073
 1F14E>0070 0070 0076
 1F14F>0077 0063
+1F16A>006D 0063
+1F16B>006D 0064
 1F190>0064 006A
 1F200>307B 304B
 1F201>30B3 30B3
@@ -5437,12 +5553,4 @@ FFF0..FFF8>
 2FA1B>9F16
 2FA1C>9F3B
 2FA1D>2A600
-E0000>
-E0001>
-E0002..E001F>
-E0020..E007F>
-E0080..E00FF>
-E0100..E01EF>
-E01F0..E0FFF>
-
-# Total code points: 9792
+E0000..E0FFF>

Modified: lucene/dev/branches/LUCENE-2878/lucene/analysis/icu/src/resources/org/apache/lucene/analysis/icu/segmentation/Default.brk
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/analysis/icu/src/resources/org/apache/lucene/analysis/icu/segmentation/Default.brk?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
Binary files - no diff available.

Modified: lucene/dev/branches/LUCENE-2878/lucene/analysis/icu/src/resources/org/apache/lucene/analysis/icu/segmentation/Hebrew.brk
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/analysis/icu/src/resources/org/apache/lucene/analysis/icu/segmentation/Hebrew.brk?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
Binary files - no diff available.

Modified: lucene/dev/branches/LUCENE-2878/lucene/analysis/icu/src/resources/org/apache/lucene/analysis/icu/segmentation/Khmer.brk
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/analysis/icu/src/resources/org/apache/lucene/analysis/icu/segmentation/Khmer.brk?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
Binary files - no diff available.

Modified: lucene/dev/branches/LUCENE-2878/lucene/analysis/icu/src/resources/org/apache/lucene/analysis/icu/segmentation/Lao.brk
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/analysis/icu/src/resources/org/apache/lucene/analysis/icu/segmentation/Lao.brk?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
Binary files - no diff available.

Modified: lucene/dev/branches/LUCENE-2878/lucene/analysis/icu/src/resources/org/apache/lucene/analysis/icu/segmentation/Myanmar.brk
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/analysis/icu/src/resources/org/apache/lucene/analysis/icu/segmentation/Myanmar.brk?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
Binary files - no diff available.

Modified: lucene/dev/branches/LUCENE-2878/lucene/analysis/icu/src/resources/org/apache/lucene/analysis/icu/utr30.nrm
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/analysis/icu/src/resources/org/apache/lucene/analysis/icu/utr30.nrm?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
Binary files - no diff available.

Modified: lucene/dev/branches/LUCENE-2878/lucene/analysis/kuromoji/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/analysis/kuromoji/build.xml?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/analysis/kuromoji/build.xml (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/analysis/kuromoji/build.xml Mon Aug 13 13:52:46 2012
@@ -64,7 +64,7 @@
   </target>
 
   <path id="tools.dependencies">
-    <fileset dir="../icu/lib" includes="icu4j-4.8.1.1.jar"/>
+    <fileset dir="../icu/lib" includes="icu4j-49.1.jar"/>
   </path>
 
   <path id="tools.classpath">

Modified: lucene/dev/branches/LUCENE-2878/lucene/benchmark/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/benchmark/build.xml?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/benchmark/build.xml (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/benchmark/build.xml Mon Aug 13 13:52:46 2012
@@ -150,10 +150,10 @@
       <pathelement path="${analyzers-common.jar}"/>
       <pathelement path="${queryparser.jar}"/>
       <pathelement path="${facet.jar}"/>
-      <fileset dir="${common.dir}/analysis/icu/lib" includes="icu4j-4.8.1.1.jar"/>
+      <fileset dir="${common.dir}/analysis/icu/lib" includes="icu4j-49.1.jar"/>
       <path refid="base.classpath"/>
     	<fileset dir="lib">
-    	  <include name="commons-compress-1.2.jar"/>
+    	  <include name="commons-compress-1.3.jar"/>
     	  <include name="xercesImpl-2.9.1.jar"/>
     	  <include name="nekohtml-1.9.15.jar"/>
     	</fileset>
@@ -208,7 +208,7 @@
 	<path id="collation.runtime.classpath">
 	  <path refid="run.classpath"/>
     <pathelement path="${analyzers-icu.jar}"/>
-    <fileset dir="${common.dir}/analysis/icu/lib" includes="icu4j-4.8.1.1.jar"/>
+    <fileset dir="${common.dir}/analysis/icu/lib" includes="icu4j-49.1.jar"/>
 	</path>
 	
 	<target name="collation" depends="compile,jar-analyzers-icu,top-100k-wiki-word-files">

Modified: lucene/dev/branches/LUCENE-2878/lucene/benchmark/ivy.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/benchmark/ivy.xml?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/benchmark/ivy.xml (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/benchmark/ivy.xml Mon Aug 13 13:52:46 2012
@@ -19,7 +19,7 @@
 <ivy-module version="2.0">
     <info organisation="org.apache.lucene" module="benchmark"/>
     <dependencies>
-      <dependency org="org.apache.commons" name="commons-compress" rev="1.2" transitive="false"/>
+      <dependency org="org.apache.commons" name="commons-compress" rev="1.3" transitive="false"/>
       <dependency org="xerces" name="xercesImpl" rev="2.9.1" transitive="false"/>
       <dependency org="net.sourceforge.nekohtml" name="nekohtml" rev="1.9.15" transitive="false"/>
       <exclude org="*" ext="*" matcher="regexp" type="${ivy.exclude.types}"/> 

Modified: lucene/dev/branches/LUCENE-2878/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/TaskSequence.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/TaskSequence.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/TaskSequence.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/TaskSequence.java Mon Aug 13 13:52:46 2012
@@ -331,7 +331,9 @@ public class TaskSequence extends PerfTa
     // Forwards top request to children
     if (runningParallelTasks != null) {
       for(ParallelTask t : runningParallelTasks) {
-        t.task.stopNow();
+        if (t != null) {
+          t.task.stopNow();
+        }
       }
     }
   }
@@ -355,6 +357,12 @@ public class TaskSequence extends PerfTa
     // run threads
     startThreads(t);
 
+    if (stopNow) {
+      for (ParallelTask task : t) {
+        task.task.stopNow();
+      }
+    }
+
     // wait for all threads to complete
     int count = 0;
     for (int i = 0; i < t.length; i++) {

Modified: lucene/dev/branches/LUCENE-2878/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksLogic.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksLogic.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksLogic.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksLogic.java Mon Aug 13 13:52:46 2012
@@ -43,7 +43,6 @@ import org.apache.lucene.facet.taxonomy.
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.DocsEnum;
 import org.apache.lucene.index.Fields;
-import org.apache.lucene.index.FieldsEnum;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
@@ -156,7 +155,12 @@ public class TestPerfTasksLogic extends 
 
     CountingSearchTestTask.numSearches = 0;
     execBenchmark(algLines);
-    assertTrue(CountingSearchTestTask.numSearches > 0);
+
+    // NOTE: cannot assert this, because on a super-slow
+    // system, it could be after waiting 0.5 seconds that
+    // the search threads hadn't yet succeeded in starting
+    // up and then they start up and do no searching:
+    //assertTrue(CountingSearchTestTask.numSearches > 0);
   }
 
   public void testHighlighting() throws Exception {
@@ -201,6 +205,7 @@ public class TestPerfTasksLogic extends 
     // 1. alg definition (required in every "logic" test)
     String algLines[] = {
         "doc.stored=true",//doc storage is required in order to have text to highlight
+        "doc.term.vector=true",
         "doc.term.vector.offsets=true",
         "content.source=org.apache.lucene.benchmark.byTask.feeds.LineDocSource",
         "docs.file=" + getReuters20LinesFile(),
@@ -487,20 +492,20 @@ public class TestPerfTasksLogic extends 
 
     int totalTokenCount2 = 0;
 
-    FieldsEnum fields = MultiFields.getFields(reader).iterator();
-    String fieldName = null;
-    while((fieldName = fields.next()) != null) {
+    Fields fields = MultiFields.getFields(reader);
+
+    for (String fieldName : fields) {
       if (fieldName.equals(DocMaker.ID_FIELD) || fieldName.equals(DocMaker.DATE_MSEC_FIELD) || fieldName.equals(DocMaker.TIME_SEC_FIELD)) {
         continue;
       }
-      Terms terms = fields.terms();
+      Terms terms = fields.terms(fieldName);
       if (terms == null) {
         continue;
       }
       TermsEnum termsEnum = terms.iterator(null);
       DocsEnum docs = null;
       while(termsEnum.next() != null) {
-        docs = _TestUtil.docs(random(), termsEnum, MultiFields.getLiveDocs(reader), docs, true);
+        docs = _TestUtil.docs(random(), termsEnum, MultiFields.getLiveDocs(reader), docs, DocsEnum.FLAG_FREQS);
         while(docs.nextDoc() != DocIdSetIterator.NO_MORE_DOCS) {
           totalTokenCount2 += docs.freq();
         }

Modified: lucene/dev/branches/LUCENE-2878/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/tasks/AddIndexesTaskTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/tasks/AddIndexesTaskTest.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/tasks/AddIndexesTaskTest.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/tasks/AddIndexesTaskTest.java Mon Aug 13 13:52:46 2012
@@ -29,7 +29,6 @@ import org.apache.lucene.index.IndexRead
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.MockDirectoryWrapper;
 import org.apache.lucene.store.RAMDirectory;
 import org.apache.lucene.util._TestUtil;
 import org.junit.BeforeClass;
@@ -45,7 +44,7 @@ public class AddIndexesTaskTest extends 
     
     // create a dummy index under inputDir
     inputDir = new File(testDir, "input");
-    MockDirectoryWrapper tmpDir = newFSDirectory(inputDir);
+    Directory tmpDir = newFSDirectory(inputDir);
     try {
       IndexWriter writer = new IndexWriter(tmpDir, new IndexWriterConfig(TEST_VERSION_CURRENT, null));
       for (int i = 0; i < 10; i++) {

Modified: lucene/dev/branches/LUCENE-2878/lucene/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/build.xml?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/build.xml (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/build.xml Mon Aug 13 13:52:46 2012
@@ -35,10 +35,9 @@
                         MIGRATE.txt,JRE_VERSION_MIGRATION.txt,
                         CHANGES.txt,
                         **/lib/*.jar,
-                        **/lib/*LICENSE*.txt,
-                        **/lib/*NOTICE*.txt,
+                        licenses/**,
                         */docs/,**/README*"
-              excludes="build/**,site/**"
+              excludes="build/**,site/**,tools/**"
   />
 
 
@@ -140,34 +139,11 @@
 
   <target name="compile-core" depends="compile-lucene-core"/>
 
-  <!--
-   Run after Junit tests.
-   -->
-  <target name="generate-clover-reports" depends="clover">
-    <fail unless="run.clover">Clover not enabled!</fail>
-    <mkdir dir="${clover.report.dir}"/>
-    <fileset dir="build" id="clover.test.result.files">
-      <include name="**/test/TEST-*.xml"/>
-      <!-- do not include BW tests -->
-      <exclude name="backwards/**"/>
-    </fileset>
-    <clover-report>
-      <current outfile="${clover.report.dir}" title="${final.name}" numThreads="0">
-        <format type="html" filter="assert"/>
-        <testresults refid="clover.test.result.files"/>
-      </current>
-      <current outfile="${clover.report.dir}/clover.xml" title="${final.name}">
-        <format type="xml" filter="assert"/>
-        <testresults refid="clover.test.result.files"/>
-      </current>
-    </clover-report>
-  </target>
-
   <!-- Validation (license/notice/api checks). -->
   <target name="validate" depends="check-licenses,rat-sources,check-forbidden-apis" description="Validate stuff." />
 
   <target name="check-licenses" depends="compile-tools,resolve,load-custom-tasks" description="Validate license stuff.">
-    <license-check-macro dir="${basedir}" />
+    <license-check-macro dir="${basedir}" licensedir="${common.dir}/licenses" />
   </target>
 
   <target name="check-forbidden-apis" depends="compile-tools,compile-test,load-custom-tasks,-check-forbidden-jdk-apis,-check-forbidden-test-apis,-check-system-out" description="Check forbidden API calls in compiled class files"/>
@@ -177,6 +153,7 @@
       <apiFileSet dir="${custom-tasks.dir}/forbiddenApis">
         <include name="jdk.txt" />
         <include name="jdk-deprecated.txt" />
+        <include name="executors.txt" />
       </apiFileSet>
       <fileset dir="${basedir}/build" includes="**/*.class" />
     </forbidden-apis>
@@ -275,14 +252,9 @@
   </target>
   
   <target name="process-webpages" depends="resolve-pegdown">
-    <pathconvert pathsep="|" property="buildfiles">
+    <makeurl property="process-webpages.buildfiles" separator="|">
       <fileset dir="." includes="**/build.xml" excludes="build.xml,analysis/*,build/**,tools/**,backwards/**,site/**"/>
-      <mapper>
-        <scriptmapper language="javascript">
-          self.addMappedName((new java.io.File(source)).toURI());
-        </scriptmapper>
-      </mapper>
-    </pathconvert>
+    </makeurl>
     <!--
       The XSL input file is ignored completely, but XSL expects one to be given,
       so we pass ourself (${ant.file}) here. The list of module build.xmls is given
@@ -293,7 +265,7 @@
       <outputproperty name="version" value="4.0"/>
       <outputproperty name="encoding" value="UTF-8"/>
       <outputproperty name="indent" value="yes"/>
-      <param name="buildfiles" expression="${buildfiles}"/>
+      <param name="buildfiles" expression="${process-webpages.buildfiles}"/>
       <param name="version" expression="${version}"/>
     </xslt>
     
@@ -577,4 +549,8 @@
     </sequential>
   </target>
 
+  <target name="jar-checksums" depends="clean-jars,resolve">
+    <jar-checksum-macro srcdir="${common.dir}" dstdir="${common.dir}/licenses"/>
+  </target>
+
 </project>

Modified: lucene/dev/branches/LUCENE-2878/lucene/common-build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/common-build.xml?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/common-build.xml (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/common-build.xml Mon Aug 13 13:52:46 2012
@@ -60,6 +60,7 @@
   <property name="ivy.resource" value="org/apache/ivy/ant/antlib.xml" />
   <available resource="${ivy.resource}" property="ivy.available" />
   <property name="ivy.default.configuration" value="*"/>
+  <property name="ivy.sync" value="true"/>
 
   <property name="junit.jar" value="junit-4.10.jar"/>
   <property name="junit-location.jar" value="${common.dir}/test-framework/lib/${junit.jar}"/>
@@ -87,7 +88,7 @@
   <property name="tests.timezone" value="random" />
   <property name="tests.directory" value="random" />
   <property name="tests.linedocsfile" value="europarl.lines.txt.gz" />
-  <property name="tests.loggingfile" value="/dev/null"/>
+  <property name="tests.loggingfile" value="${common.dir}/tools/junit4/logging.properties"/>
   <property name="tests.nightly" value="false" />
   <property name="tests.weekly" value="false" />
   <property name="tests.slow" value="true" />
@@ -144,6 +145,7 @@
   <property name="javadoc.charset" value="utf-8"/>
   <property name="javadoc.dir" value="${common.dir}/build/docs"/>
   <property name="javadoc.maxmemory" value="512m" />
+  <property name="javadoc.noindex" value="true"/>
   <!-- Javadoc classpath -->
   <path id="javadoc.classpath">
     <path refid="classpath"/>
@@ -293,7 +295,7 @@
     <!-- todo, make this a property or something. 
          only special cases need bundles -->
     <ivy:retrieve type="jar,bundle" log="download-only" 
-                  conf="${ivy.default.configuration}"/>
+                  conf="${ivy.default.configuration}" sync="${ivy.sync}"/>
   </target>
 
   <property name="ivy_install_path" location="${user.home}/.ant/lib" />
@@ -698,15 +700,22 @@
   <condition property="tests.method" value="${testmethod}*">
     <isset property="testmethod" />
   </condition>
+
   <condition property="tests.showSuccess" value="true">
     <or>
       <isset property="tests.class" />
       <isset property="tests.method" />
     </or>
   </condition>
-  <!-- default -->
   <property name="tests.showSuccess" value="false"/>
-  
+
+  <condition property="tests.showOutput" value="always">
+    <or>
+      <isset property="tests.class" />
+      <isset property="tests.method" />
+    </or>
+  </condition>
+  <property name="tests.showOutput" value="onerror"/>
 
   <!-- Test macro using junit4. -->
   <macrodef name="test-macro" description="Executes junit tests.">
@@ -852,6 +861,7 @@
             <syspropertyset>
                 <propertyref prefix="tests.maxfailures" />
                 <propertyref prefix="tests.failfast" />
+                <propertyref prefix="tests.badapples" />
             </syspropertyset>
 
             <!-- Pass randomized settings to the forked JVM. -->
@@ -873,8 +883,7 @@
                 <junit4:report-text
                     showThrowable="true" 
                     showStackTraces="true" 
-                    showOutputStream="true" 
-                    showErrorStream="true"
+                    showOutput="${tests.showOutput}" 
 
                     showStatusOk="${tests.showSuccess}"
                     showStatusError="${tests.showError}"
@@ -894,8 +903,7 @@
                     file="@{junit.output.dir}/tests-report.txt"
                     showThrowable="true" 
                     showStackTraces="true" 
-                    showOutputStream="true" 
-                    showErrorStream="true"
+                    showOutput="always"
 
                     showStatusOk="true"
                     showStatusError="true"
@@ -911,8 +919,7 @@
                     file="@{junit.output.dir}/tests-failures.txt"
                     showThrowable="true" 
                     showStackTraces="true" 
-                    showOutputStream="true" 
-                    showErrorStream="true"
+                    showOutput="onerror" 
 
                     showStatusOk="false"
                     showStatusError="true"
@@ -927,8 +934,13 @@
                      the slowest tests or for reuse in balancing). -->
                 <junit4:report-execution-times file="@{junit.output.dir}/tests-timehints.txt" historyLength="5" />
 
-                <junit4:report-ant-xml dir="@{junit.output.dir}" />
-                <junit4:report-json file="@{junit.output.dir}/tests-report-${ant.project.name}/index.html" />
+                <!-- ANT-compatible XMLs for jenkins records etc. -->
+                <junit4:report-ant-xml dir="@{junit.output.dir}" outputStreams="no" />
+
+                <!--
+                Enable if you wish to have a nice HTML5 report.
+                <junit4:report-json file="@{junit.output.dir}/tests-report-${ant.project.name}/index.html" outputStreams="no" />
+                -->
             </listeners>
 
             <!-- Input test classes. -->
@@ -1414,7 +1426,7 @@ ${tests-output}/junit4-*.suites     - pe
           encoding="${build.encoding}"
           charset="${javadoc.charset}"
           docencoding="${javadoc.charset}"
-          noindex="true"
+          noindex="${javadoc.noindex}"
           includenosourcepackages="true"
           author="true"
           version="true"
@@ -1565,6 +1577,43 @@ ${tests-output}/junit4-*.suites     - pe
     </sequential>
   </macrodef>
 
+  <macrodef name="jar-checksum-macro">
+      <attribute name="srcdir"/>
+      <attribute name="dstdir"/>
+    <sequential>
+      <delete>
+        <fileset dir="@{dstdir}">
+          <include name="**/*.jar.sha1"/>
+        </fileset>
+      </delete>
+
+      <!-- checksum task does not have a flatten=true -->
+      <tempfile property="jar-checksum.temp.dir"/>
+      <mkdir dir="${jar-checksum.temp.dir}"/>
+      <copy todir="${jar-checksum.temp.dir}" flatten="true">
+        <fileset dir="@{srcdir}">
+          <include name="**/*.jar"/>
+          <!-- todo make this something passed into the macro and not some hardcoded set -->
+          <exclude name="build/**"/>
+          <exclude name="dist/**"/>
+          <exclude name="package/**"/>
+          <exclude name="example/exampledocs/**"/>
+        </fileset>
+      </copy>
+
+      <checksum algorithm="SHA1" fileext=".sha1" todir="@{dstdir}">
+        <fileset dir="${jar-checksum.temp.dir}"/>
+      </checksum>
+
+      <delete dir="${jar-checksum.temp.dir}"/>
+
+      <fixcrlf 
+        srcdir="@{dstdir}"
+        includes="**/*.jar.sha1"
+        eol="lf" fixlast="true" encoding="US-ASCII" />
+    </sequential>
+  </macrodef>
+
   <macrodef name="sign-artifacts-macro">
     <attribute name="artifacts.dir"/>
     <sequential>
@@ -1699,7 +1748,7 @@ ${tests-output}/junit4-*.suites     - pe
        <attribute name="dir"/>
        <attribute name="level" default="class"/>
      <sequential>
-       <exec dir="." executable="${python.exe}" failonerror="true">
+       <exec dir="." executable="${python32.exe}" failonerror="true">
          <arg value="${dev-tools.dir}/scripts/checkJavaDocs.py"/>
          <arg value="@{dir}"/>
          <arg value="@{level}"/>

Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/analysis/Analyzer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/analysis/Analyzer.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/analysis/Analyzer.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/analysis/Analyzer.java Mon Aug 13 13:52:46 2012
@@ -17,7 +17,6 @@ package org.apache.lucene.analysis;
  * limitations under the License.
  */
 
-import org.apache.lucene.index.IndexableField;
 import org.apache.lucene.store.AlreadyClosedException;
 import org.apache.lucene.util.CloseableThreadLocal;
 
@@ -114,21 +113,15 @@ public abstract class Analyzer {
 
   /**
    * Just like {@link #getPositionIncrementGap}, except for
-   * Token offsets instead.  By default this returns 1 for
-   * tokenized fields and, as if the fields were joined
-   * with an extra space character, and 0 for un-tokenized
-   * fields.  This method is only called if the field
+   * Token offsets instead.  By default this returns 1.
+   * This method is only called if the field
    * produced at least one token for indexing.
    *
-   * @param field the field just indexed
+   * @param fieldName the field just indexed
    * @return offset gap, added to the next token emitted from {@link #tokenStream(String,Reader)}
    */
-  public int getOffsetGap(IndexableField field) {
-    if (field.fieldType().tokenized()) {
-      return 1;
-    } else {
-      return 0;
-    }
+  public int getOffsetGap(String fieldName) {
+    return 1;
   }
 
   /** Frees persistent resources used by this Analyzer */

Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/analysis/AnalyzerWrapper.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/analysis/AnalyzerWrapper.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/analysis/AnalyzerWrapper.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/analysis/AnalyzerWrapper.java Mon Aug 13 13:52:46 2012
@@ -17,8 +17,6 @@ package org.apache.lucene.analysis;
  * limitations under the License.
  */
 
-import org.apache.lucene.index.IndexableField;
-
 import java.io.Reader;
 
 /**
@@ -83,8 +81,8 @@ public abstract class AnalyzerWrapper ex
    * {@inheritDoc}
    */
   @Override
-  public final int getOffsetGap(IndexableField field) {
-    return getWrappedAnalyzer(field.name()).getOffsetGap(field);
+  public final int getOffsetGap(String fieldName) {
+    return getWrappedAnalyzer(fieldName).getOffsetGap(fieldName);
   }
 
   @Override

Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/analysis/package.html
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/analysis/package.html?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/analysis/package.html (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/analysis/package.html Mon Aug 13 13:52:46 2012
@@ -480,7 +480,7 @@ public class MyAnalyzer extends Analyzer
         System.out.println(termAtt.toString());
       }
     
-      stream.end()
+      stream.end();
     } finally {
       stream.close();
     }
@@ -509,7 +509,7 @@ easily by adding a LengthFilter to the c
   {@literal @Override}
   protected TokenStreamComponents createComponents(String fieldName, Reader reader) {
     final Tokenizer source = new WhitespaceTokenizer(matchVersion, reader);
-    TokenStream result = new LengthFilter(source, 3, Integer.MAX_VALUE);
+    TokenStream result = new LengthFilter(true, source, 3, Integer.MAX_VALUE);
     return new TokenStreamComponents(source, result);
   }
 </pre>

Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/codecs/BlockTermsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/codecs/BlockTermsReader.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/codecs/BlockTermsReader.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/codecs/BlockTermsReader.java Mon Aug 13 13:52:46 2012
@@ -27,7 +27,6 @@ import org.apache.lucene.index.DocsEnum;
 import org.apache.lucene.index.FieldInfo.IndexOptions;
 import org.apache.lucene.index.FieldInfo;
 import org.apache.lucene.index.FieldInfos;
-import org.apache.lucene.index.FieldsEnum;
 import org.apache.lucene.index.IndexFileNames;
 import org.apache.lucene.index.TermState;
 import org.apache.lucene.index.Terms;
@@ -40,6 +39,7 @@ import org.apache.lucene.util.ArrayUtil;
 import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.DoubleBarrelLRUCache;
+import org.apache.lucene.util.UnmodifiableIterator;
 
 /** Handles a terms dict, but decouples all details of
  *  doc/freqs/positions reading to an instance of {@link
@@ -184,8 +184,8 @@ public class BlockTermsReader extends Fi
   }
 
   @Override
-  public FieldsEnum iterator() {
-    return new TermFieldsEnum();
+  public Iterator<String> iterator() {
+    return new UnmodifiableIterator<String>(fields.keySet().iterator());
   }
 
   @Override
@@ -199,32 +199,6 @@ public class BlockTermsReader extends Fi
     return fields.size();
   }
 
-  // Iterates through all fields
-  private class TermFieldsEnum extends FieldsEnum {
-    final Iterator<FieldReader> it;
-    FieldReader current;
-
-    TermFieldsEnum() {
-      it = fields.values().iterator();
-    }
-
-    @Override
-    public String next() {
-      if (it.hasNext()) {
-        current = it.next();
-        return current.fieldInfo.name;
-      } else {
-        current = null;
-        return null;
-      }
-    }
-    
-    @Override
-    public Terms terms() throws IOException {
-      return current;
-    }
-  }
-
   private class FieldReader extends Terms {
     final long numTerms;
     final FieldInfo fieldInfo;
@@ -254,6 +228,21 @@ public class BlockTermsReader extends Fi
     }
 
     @Override
+    public boolean hasOffsets() {
+      return fieldInfo.getIndexOptions().compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS) >= 0;
+    }
+
+    @Override
+    public boolean hasPositions() {
+      return fieldInfo.getIndexOptions().compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS) >= 0;
+    }
+    
+    @Override
+    public boolean hasPayloads() {
+      return fieldInfo.hasPayloads();
+    }
+
+    @Override
     public long size() {
       return numTerms;
     }
@@ -683,31 +672,22 @@ public class BlockTermsReader extends Fi
       }
 
       @Override
-      public DocsEnum docs(Bits liveDocs, DocsEnum reuse, boolean needsFreqs) throws IOException {
+      public DocsEnum docs(Bits liveDocs, DocsEnum reuse, int flags) throws IOException {
         //System.out.println("BTR.docs this=" + this);
-        if (needsFreqs && fieldInfo.getIndexOptions() == IndexOptions.DOCS_ONLY) {
-          return null;
-        }
         decodeMetaData();
         //System.out.println("BTR.docs:  state.docFreq=" + state.docFreq);
-        return postingsReader.docs(fieldInfo, state, liveDocs, reuse, needsFreqs);
+        return postingsReader.docs(fieldInfo, state, liveDocs, reuse, flags);
       }
 
       @Override
-      public DocsAndPositionsEnum docsAndPositions(Bits liveDocs, DocsAndPositionsEnum reuse, boolean needsOffsets) throws IOException {
+      public DocsAndPositionsEnum docsAndPositions(Bits liveDocs, DocsAndPositionsEnum reuse, int flags) throws IOException {
         if (fieldInfo.getIndexOptions().compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS) < 0) {
           // Positions were not indexed:
           return null;
         }
 
-        if (needsOffsets &&
-            fieldInfo.getIndexOptions().compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS) < 0) {
-          // Offsets were not indexed:
-          return null;
-        }
-
         decodeMetaData();
-        return postingsReader.docsAndPositions(fieldInfo, state, liveDocs, reuse, needsOffsets);
+        return postingsReader.docsAndPositions(fieldInfo, state, liveDocs, reuse, flags);
       }
 
       @Override

Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/codecs/BlockTreeTermsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/codecs/BlockTreeTermsReader.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/codecs/BlockTreeTermsReader.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/codecs/BlockTreeTermsReader.java Mon Aug 13 13:52:46 2012
@@ -31,7 +31,6 @@ import org.apache.lucene.index.DocsEnum;
 import org.apache.lucene.index.FieldInfo.IndexOptions;
 import org.apache.lucene.index.FieldInfo;
 import org.apache.lucene.index.FieldInfos;
-import org.apache.lucene.index.FieldsEnum;
 import org.apache.lucene.index.IndexFileNames;
 import org.apache.lucene.index.TermState;
 import org.apache.lucene.index.Terms;
@@ -46,6 +45,7 @@ import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.IOUtils;
 import org.apache.lucene.util.RamUsageEstimator;
 import org.apache.lucene.util.StringHelper;
+import org.apache.lucene.util.UnmodifiableIterator;
 import org.apache.lucene.util.automaton.CompiledAutomaton;
 import org.apache.lucene.util.automaton.RunAutomaton;
 import org.apache.lucene.util.automaton.Transition;
@@ -199,8 +199,8 @@ public class BlockTreeTermsReader extend
   }
 
   @Override
-  public FieldsEnum iterator() {
-    return new TermFieldsEnum();
+  public Iterator<String> iterator() {
+    return new UnmodifiableIterator<String>(fields.keySet().iterator());
   }
 
   @Override
@@ -214,32 +214,6 @@ public class BlockTreeTermsReader extend
     return fields.size();
   }
 
-  // Iterates through all fields
-  private class TermFieldsEnum extends FieldsEnum {
-    final Iterator<FieldReader> it;
-    FieldReader current;
-
-    TermFieldsEnum() {
-      it = fields.values().iterator();
-    }
-
-    @Override
-    public String next() {
-      if (it.hasNext()) {
-        current = it.next();
-        return current.fieldInfo.name;
-      } else {
-        current = null;
-        return null;
-      }
-    }
-    
-    @Override
-    public Terms terms() throws IOException {
-      return current;
-    }
-  }
-
   // for debugging
   String brToString(BytesRef b) {
     if (b == null) {
@@ -457,6 +431,21 @@ public class BlockTreeTermsReader extend
     }
 
     @Override
+    public boolean hasOffsets() {
+      return fieldInfo.getIndexOptions().compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS) >= 0;
+    }
+
+    @Override
+    public boolean hasPositions() {
+      return fieldInfo.getIndexOptions().compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS) >= 0;
+    }
+    
+    @Override
+    public boolean hasPayloads() {
+      return fieldInfo.hasPayloads();
+    }
+
+    @Override
     public TermsEnum iterator(TermsEnum reuse) throws IOException {
       return new SegmentTermsEnum();
     }
@@ -893,29 +882,20 @@ public class BlockTreeTermsReader extend
       }
 
       @Override
-      public DocsEnum docs(Bits skipDocs, DocsEnum reuse, boolean needsFreqs) throws IOException {
+      public DocsEnum docs(Bits skipDocs, DocsEnum reuse, int flags) throws IOException {
         currentFrame.decodeMetaData();
-        if (needsFreqs && fieldInfo.getIndexOptions() == IndexOptions.DOCS_ONLY) {
-          return null;
-        }
-        return postingsReader.docs(fieldInfo, currentFrame.termState, skipDocs, reuse, needsFreqs);
+        return postingsReader.docs(fieldInfo, currentFrame.termState, skipDocs, reuse, flags);
       }
 
       @Override
-      public DocsAndPositionsEnum docsAndPositions(Bits skipDocs, DocsAndPositionsEnum reuse, boolean needsOffsets) throws IOException {
+      public DocsAndPositionsEnum docsAndPositions(Bits skipDocs, DocsAndPositionsEnum reuse, int flags) throws IOException {
         if (fieldInfo.getIndexOptions().compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS) < 0) {
           // Positions were not indexed:
           return null;
         }
 
-        if (needsOffsets &&
-            fieldInfo.getIndexOptions().compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS) < 0) {
-          // Offsets were not indexed:
-          return null;
-        }
-
         currentFrame.decodeMetaData();
-        return postingsReader.docsAndPositions(fieldInfo, currentFrame.termState, skipDocs, reuse, needsOffsets);
+        return postingsReader.docsAndPositions(fieldInfo, currentFrame.termState, skipDocs, reuse, flags);
       }
 
       private int getState() {
@@ -2121,10 +2101,7 @@ public class BlockTreeTermsReader extend
       }
 
       @Override
-      public DocsEnum docs(Bits skipDocs, DocsEnum reuse, boolean needsFreqs) throws IOException {
-        if (needsFreqs && fieldInfo.getIndexOptions() == IndexOptions.DOCS_ONLY) {
-          return null;
-        }
+      public DocsEnum docs(Bits skipDocs, DocsEnum reuse, int flags) throws IOException {
         assert !eof;
         //if (DEBUG) {
         //System.out.println("BTTR.docs seg=" + segment);
@@ -2133,25 +2110,19 @@ public class BlockTreeTermsReader extend
         //if (DEBUG) {
         //System.out.println("  state=" + currentFrame.state);
         //}
-        return postingsReader.docs(fieldInfo, currentFrame.state, skipDocs, reuse, needsFreqs);
+        return postingsReader.docs(fieldInfo, currentFrame.state, skipDocs, reuse, flags);
       }
 
       @Override
-      public DocsAndPositionsEnum docsAndPositions(Bits skipDocs, DocsAndPositionsEnum reuse, boolean needsOffsets) throws IOException {
+      public DocsAndPositionsEnum docsAndPositions(Bits skipDocs, DocsAndPositionsEnum reuse, int flags) throws IOException {
         if (fieldInfo.getIndexOptions().compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS) < 0) {
           // Positions were not indexed:
           return null;
         }
 
-        if (needsOffsets &&
-            fieldInfo.getIndexOptions().compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS) < 0) {
-          // Offsets were not indexed:
-          return null;
-        }
-
         assert !eof;
         currentFrame.decodeMetaData();
-        return postingsReader.docsAndPositions(fieldInfo, currentFrame.state, skipDocs, reuse, needsOffsets);
+        return postingsReader.docsAndPositions(fieldInfo, currentFrame.state, skipDocs, reuse, flags);
       }
 
       @Override

Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/codecs/BlockTreeTermsWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/codecs/BlockTreeTermsWriter.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/codecs/BlockTreeTermsWriter.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/codecs/BlockTreeTermsWriter.java Mon Aug 13 13:52:46 2012
@@ -896,7 +896,7 @@ public class BlockTreeTermsWriter extend
         //   w.close();
         // }
       } else {
-        assert sumTotalTermFreq == 0;
+        assert sumTotalTermFreq == 0 || fieldInfo.getIndexOptions() == IndexOptions.DOCS_ONLY && sumTotalTermFreq == -1;
         assert sumDocFreq == 0;
         assert docCount == 0;
       }

Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/codecs/Codec.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/codecs/Codec.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/codecs/Codec.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/codecs/Codec.java Mon Aug 13 13:52:46 2012
@@ -86,6 +86,21 @@ public abstract class Codec implements N
     return loader.availableServices();
   }
   
+  /** 
+   * Reloads the codec list from the given {@link ClassLoader}.
+   * Changes to the codecs are visible after the method ends, all
+   * iterators ({@link #availableCodecs()},...) stay consistent. 
+   * 
+   * <p><b>NOTE:</b> Only new codecs are added, existing ones are
+   * never removed or replaced.
+   * 
+   * <p><em>This method is expensive and should only be called for discovery
+   * of new codecs on the given classpath/classloader!</em>
+   */
+  public static void reloadCodecs(ClassLoader classloader) {
+    loader.reload(classloader);
+  }
+  
   private static Codec defaultCodec = Codec.forName("Lucene40");
   
   /** expert: returns the default codec used for newly created

Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/codecs/FieldsConsumer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/codecs/FieldsConsumer.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/codecs/FieldsConsumer.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/codecs/FieldsConsumer.java Mon Aug 13 13:52:46 2012
@@ -22,7 +22,6 @@ import java.io.IOException;
 
 import org.apache.lucene.index.FieldInfo;
 import org.apache.lucene.index.Fields;
-import org.apache.lucene.index.FieldsEnum;
 import org.apache.lucene.index.MergeState;
 import org.apache.lucene.index.SegmentWriteState; // javadocs
 import org.apache.lucene.index.Terms;
@@ -53,13 +52,10 @@ public abstract class FieldsConsumer imp
   public abstract void close() throws IOException;
 
   public void merge(MergeState mergeState, Fields fields) throws IOException {
-    FieldsEnum fieldsEnum = fields.iterator();
-    assert fieldsEnum != null;
-    String field;
-    while((field = fieldsEnum.next()) != null) {
+    for (String field : fields) {
       mergeState.fieldInfo = mergeState.fieldInfos.fieldInfo(field);
       assert mergeState.fieldInfo != null : "FieldInfo for field is null: "+ field;
-      Terms terms = fieldsEnum.terms();
+      Terms terms = fields.terms(field);
       if (terms != null) {
         final TermsConsumer termsConsumer = addField(mergeState.fieldInfo);
         termsConsumer.merge(mergeState, terms.iterator(null));

Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/codecs/MappingMultiDocsAndPositionsEnum.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/codecs/MappingMultiDocsAndPositionsEnum.java?rev=1372423&r1=1372422&r2=1372423&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/codecs/MappingMultiDocsAndPositionsEnum.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/codecs/MappingMultiDocsAndPositionsEnum.java Mon Aug 13 13:52:46 2012
@@ -124,15 +124,17 @@ public final class MappingMultiDocsAndPo
   @Override
   public BytesRef getPayload() throws IOException {
     BytesRef payload = current.getPayload();
-    if (mergeState.currentPayloadProcessor[upto] != null) {
+    if (mergeState.currentPayloadProcessor[upto] != null && payload != null) {
+      // to not violate the D&P api, we must give the processor a private copy
+      // TODO: reuse a BytesRef if there is a PPP
+      payload = BytesRef.deepCopyOf(payload);
       mergeState.currentPayloadProcessor[upto].processPayload(payload);
+      if (payload.length == 0) {
+        // don't let PayloadProcessors corrumpt the index
+        return null;
+      }
     }
     return payload;
   }
-
-  @Override
-  public boolean hasPayload() {
-    return current.hasPayload();
-  }
 }