Hex Artifact Content Вы: nobody
Вход

Artifact a478c4a6fa04c0d86529ffadff2deabde0460af4:


0000: 2f 2f 20 75 74 65 78 2e 63 70 70 0d 0a 23 69 6e  // utex.cpp..#in
0010: 63 6c 75 64 65 20 22 53 74 64 41 66 78 2e 68 22  clude "StdAfx.h"
0020: 0d 0a 23 69 6e 63 6c 75 64 65 20 22 75 74 65 78  ..#include "utex
0030: 2e 68 22 0d 0a 0d 0a 65 78 74 65 72 6e 20 22 43  .h"....extern "C
0040: 22 7b 0d 0a 75 6e 73 69 67 6e 65 64 20 73 68 6f  "{..unsigned sho
0050: 72 74 20 6f 61 73 55 70 70 65 72 32 4c 6f 77 65  rt oasUpper2Lowe
0060: 72 5b 30 78 46 46 46 46 5d 3b 0d 0a 7d 0d 0a 0d  r[0xFFFF];..}...
0070: 0a 63 6f 6e 73 74 20 44 57 4f 52 44 20 75 38 74  .const DWORD u8t
0080: 65 78 74 3a 3a 77 31 32 35 31 32 75 5b 31 32 38  ext::w12512u[128
0090: 5d 20 3d 20 7b 0d 0a 09 30 78 30 30 30 30 38 32  ] = {...0x000082
00a0: 44 30 2c 20 2f 2f 80 20 20 3d 20 30 78 38 30 20  D0, //.  = 0x80 
00b0: 3d 20 30 78 30 30 30 30 30 34 30 32 0d 0a 09 30  = 0x00000402...0
00c0: 78 30 30 30 30 38 33 44 30 2c 20 2f 2f 81 20 20  x000083D0, //.  
00d0: 3d 20 30 78 38 31 20 3d 20 30 78 30 30 30 30 30  = 0x81 = 0x00000
00e0: 34 30 33 0d 0a 09 30 78 30 30 39 41 38 30 45 32  403...0x009A80E2
00f0: 2c 20 2f 2f 82 20 20 3d 20 30 78 38 32 20 3d 20  , //.  = 0x82 = 
0100: 30 78 30 30 30 30 32 30 31 41 0d 0a 09 30 78 30  0x0000201A...0x0
0110: 30 30 30 39 33 44 31 2c 20 2f 2f 83 20 20 3d 20  00093D1, //.  = 
0120: 30 78 38 33 20 3d 20 30 78 30 30 30 30 30 34 35  0x83 = 0x0000045
0130: 33 0d 0a 09 30 78 30 30 39 45 38 30 45 32 2c 20  3...0x009E80E2, 
0140: 2f 2f 84 20 20 3d 20 30 78 38 34 20 3d 20 30 78  //.  = 0x84 = 0x
0150: 30 30 30 30 32 30 31 45 0d 0a 09 30 78 30 30 41  0000201E...0x00A
0160: 36 38 30 45 32 2c 20 2f 2f 85 20 20 3d 20 30 78  680E2, //.  = 0x
0170: 38 35 20 3d 20 30 78 30 30 30 30 32 30 32 36 0d  85 = 0x00002026.
0180: 0a 09 30 78 30 30 41 30 38 30 45 32 2c 20 2f 2f  ..0x00A080E2, //
0190: 86 20 20 3d 20 30 78 38 36 20 3d 20 30 78 30 30  .  = 0x86 = 0x00
01a0: 30 30 32 30 32 30 0d 0a 09 30 78 30 30 41 31 38  002020...0x00A18
01b0: 30 45 32 2c 20 2f 2f 87 20 20 3d 20 30 78 38 37  0E2, //.  = 0x87
01c0: 20 3d 20 30 78 30 30 30 30 32 30 32 31 0d 0a 09   = 0x00002021...
01d0: 30 78 30 30 41 43 38 32 45 32 2c 20 2f 2f 88 20  0x00AC82E2, //. 
01e0: 20 3d 20 30 78 38 38 20 3d 20 30 78 30 30 30 30   = 0x88 = 0x0000
01f0: 32 30 41 43 0d 0a 09 30 78 30 30 42 30 38 30 45  20AC...0x00B080E
0200: 32 2c 20 2f 2f 89 20 20 3d 20 30 78 38 39 20 3d  2, //.  = 0x89 =
0210: 20 30 78 30 30 30 30 32 30 33 30 0d 0a 09 30 78   0x00002030...0x
0220: 30 30 30 30 38 39 44 30 2c 20 2f 2f 8a 20 20 3d  000089D0, //.  =
0230: 20 30 78 38 41 20 3d 20 30 78 30 30 30 30 30 34   0x8A = 0x000004
0240: 30 39 0d 0a 09 30 78 30 30 42 39 38 30 45 32 2c  09...0x00B980E2,
0250: 20 2f 2f 8b 20 20 3d 20 30 78 38 42 20 3d 20 30   //.  = 0x8B = 0
0260: 78 30 30 30 30 32 30 33 39 0d 0a 09 30 78 30 30  x00002039...0x00
0270: 30 30 38 41 44 30 2c 20 2f 2f 8c 20 20 3d 20 30  008AD0, //.  = 0
0280: 78 38 43 20 3d 20 30 78 30 30 30 30 30 34 30 41  x8C = 0x0000040A
0290: 0d 0a 09 30 78 30 30 30 30 38 43 44 30 2c 20 2f  ...0x00008CD0, /
02a0: 2f 8d 20 20 3d 20 30 78 38 44 20 3d 20 30 78 30  /.  = 0x8D = 0x0
02b0: 30 30 30 30 34 30 43 0d 0a 09 30 78 30 30 30 30  000040C...0x0000
02c0: 38 42 44 30 2c 20 2f 2f 8e 20 20 3d 20 30 78 38  8BD0, //.  = 0x8
02d0: 45 20 3d 20 30 78 30 30 30 30 30 34 30 42 0d 0a  E = 0x0000040B..
02e0: 09 30 78 30 30 30 30 38 46 44 30 2c 20 2f 2f 8f  .0x00008FD0, //.
02f0: 20 20 3d 20 30 78 38 46 20 3d 20 30 78 30 30 30    = 0x8F = 0x000
0300: 30 30 34 30 46 0d 0a 09 30 78 30 30 30 30 39 32  0040F...0x000092
0310: 44 31 2c 20 2f 2f 90 20 20 3d 20 30 78 39 30 20  D1, //.  = 0x90 
0320: 3d 20 30 78 30 30 30 30 30 34 35 32 0d 0a 09 30  = 0x00000452...0
0330: 78 30 30 39 38 38 30 45 32 2c 20 2f 2f 91 20 20  x009880E2, //.  
0340: 3d 20 30 78 39 31 20 3d 20 30 78 30 30 30 30 32  = 0x91 = 0x00002
0350: 30 31 38 0d 0a 09 30 78 30 30 39 39 38 30 45 32  018...0x009980E2
0360: 2c 20 2f 2f 92 20 20 3d 20 30 78 39 32 20 3d 20  , //.  = 0x92 = 
0370: 30 78 30 30 30 30 32 30 31 39 0d 0a 09 30 78 30  0x00002019...0x0
0380: 30 39 43 38 30 45 32 2c 20 2f 2f 93 20 20 3d 20  09C80E2, //.  = 
0390: 30 78 39 33 20 3d 20 30 78 30 30 30 30 32 30 31  0x93 = 0x0000201
03a0: 43 0d 0a 09 30 78 30 30 39 44 38 30 45 32 2c 20  C...0x009D80E2, 
03b0: 2f 2f 94 20 20 3d 20 30 78 39 34 20 3d 20 30 78  //.  = 0x94 = 0x
03c0: 30 30 30 30 32 30 31 44 0d 0a 09 30 78 30 30 41  0000201D...0x00A
03d0: 32 38 30 45 32 2c 20 2f 2f 95 20 20 3d 20 30 78  280E2, //.  = 0x
03e0: 39 35 20 3d 20 30 78 30 30 30 30 32 30 32 32 0d  95 = 0x00002022.
03f0: 0a 09 30 78 30 30 39 33 38 30 45 32 2c 20 2f 2f  ..0x009380E2, //
0400: 96 20 20 3d 20 30 78 39 36 20 3d 20 30 78 30 30  .  = 0x96 = 0x00
0410: 30 30 32 30 31 33 0d 0a 09 30 78 30 30 39 34 38  002013...0x00948
0420: 30 45 32 2c 20 2f 2f 97 20 20 3d 20 30 78 39 37  0E2, //.  = 0x97
0430: 20 3d 20 30 78 30 30 30 30 32 30 31 34 0d 0a 09   = 0x00002014...
0440: 30 78 30 30 30 30 39 38 43 32 2c 20 2f 2f 98 20  0x000098C2, //. 
0450: 20 3d 20 30 78 39 38 20 3d 20 30 78 30 30 30 30   = 0x98 = 0x0000
0460: 30 30 39 38 0d 0a 09 30 78 30 30 41 32 38 34 45  0098...0x00A284E
0470: 32 2c 20 2f 2f 99 20 20 3d 20 30 78 39 39 20 3d  2, //.  = 0x99 =
0480: 20 30 78 30 30 30 30 32 31 32 32 0d 0a 09 30 78   0x00002122...0x
0490: 30 30 30 30 39 39 44 31 2c 20 2f 2f 9a 20 20 3d  000099D1, //.  =
04a0: 20 30 78 39 41 20 3d 20 30 78 30 30 30 30 30 34   0x9A = 0x000004
04b0: 35 39 0d 0a 09 30 78 30 30 42 41 38 30 45 32 2c  59...0x00BA80E2,
04c0: 20 2f 2f 9b 20 20 3d 20 30 78 39 42 20 3d 20 30   //.  = 0x9B = 0
04d0: 78 30 30 30 30 32 30 33 41 0d 0a 09 30 78 30 30  x0000203A...0x00
04e0: 30 30 39 41 44 31 2c 20 2f 2f 9c 20 20 3d 20 30  009AD1, //.  = 0
04f0: 78 39 43 20 3d 20 30 78 30 30 30 30 30 34 35 41  x9C = 0x0000045A
0500: 0d 0a 09 30 78 30 30 30 30 39 43 44 31 2c 20 2f  ...0x00009CD1, /
0510: 2f 9d 20 20 3d 20 30 78 39 44 20 3d 20 30 78 30  /.  = 0x9D = 0x0
0520: 30 30 30 30 34 35 43 0d 0a 09 30 78 30 30 30 30  000045C...0x0000
0530: 39 42 44 31 2c 20 2f 2f 9e 20 20 3d 20 30 78 39  9BD1, //.  = 0x9
0540: 45 20 3d 20 30 78 30 30 30 30 30 34 35 42 0d 0a  E = 0x0000045B..
0550: 09 30 78 30 30 30 30 39 46 44 31 2c 20 2f 2f 9f  .0x00009FD1, //.
0560: 20 20 3d 20 30 78 39 46 20 3d 20 30 78 30 30 30    = 0x9F = 0x000
0570: 30 30 34 35 46 0d 0a 09 30 78 30 30 30 30 41 30  0045F...0x0000A0
0580: 43 32 2c 20 2f 2f a0 20 20 3d 20 30 78 41 30 20  C2, //.  = 0xA0 
0590: 3d 20 30 78 30 30 30 30 30 30 41 30 0d 0a 09 30  = 0x000000A0...0
05a0: 78 30 30 30 30 38 45 44 30 2c 20 2f 2f a1 20 20  x00008ED0, //.  
05b0: 3d 20 30 78 41 31 20 3d 20 30 78 30 30 30 30 30  = 0xA1 = 0x00000
05c0: 34 30 45 0d 0a 09 30 78 30 30 30 30 39 45 44 31  40E...0x00009ED1
05d0: 2c 20 2f 2f a2 20 20 3d 20 30 78 41 32 20 3d 20  , //.  = 0xA2 = 
05e0: 30 78 30 30 30 30 30 34 35 45 0d 0a 09 30 78 30  0x0000045E...0x0
05f0: 30 30 30 38 38 44 30 2c 20 2f 2f a3 20 20 3d 20  00088D0, //.  = 
0600: 30 78 41 33 20 3d 20 30 78 30 30 30 30 30 34 30  0xA3 = 0x0000040
0610: 38 0d 0a 09 30 78 30 30 30 30 41 34 43 32 2c 20  8...0x0000A4C2, 
0620: 2f 2f a4 20 20 3d 20 30 78 41 34 20 3d 20 30 78  //.  = 0xA4 = 0x
0630: 30 30 30 30 30 30 41 34 0d 0a 09 30 78 30 30 30  000000A4...0x000
0640: 30 39 30 44 32 2c 20 2f 2f a5 20 20 3d 20 30 78  090D2, //.  = 0x
0650: 41 35 20 3d 20 30 78 30 30 30 30 30 34 39 30 0d  A5 = 0x00000490.
0660: 0a 09 30 78 30 30 30 30 41 36 43 32 2c 20 2f 2f  ..0x0000A6C2, //
0670: a6 20 20 3d 20 30 78 41 36 20 3d 20 30 78 30 30  .  = 0xA6 = 0x00
0680: 30 30 30 30 41 36 0d 0a 09 30 78 30 30 30 30 41  0000A6...0x0000A
0690: 37 43 32 2c 20 2f 2f a7 20 20 3d 20 30 78 41 37  7C2, //.  = 0xA7
06a0: 20 3d 20 30 78 30 30 30 30 30 30 41 37 0d 0a 09   = 0x000000A7...
06b0: 30 78 30 30 30 30 38 31 44 30 2c 20 2f 2f a8 20  0x000081D0, //. 
06c0: 20 3d 20 30 78 41 38 20 3d 20 30 78 30 30 30 30   = 0xA8 = 0x0000
06d0: 30 34 30 31 0d 0a 09 30 78 30 30 30 30 41 39 43  0401...0x0000A9C
06e0: 32 2c 20 2f 2f a9 20 20 3d 20 30 78 41 39 20 3d  2, //.  = 0xA9 =
06f0: 20 30 78 30 30 30 30 30 30 41 39 0d 0a 09 30 78   0x000000A9...0x
0700: 30 30 30 30 38 34 44 30 2c 20 2f 2f aa 20 20 3d  000084D0, //.  =
0710: 20 30 78 41 41 20 3d 20 30 78 30 30 30 30 30 34   0xAA = 0x000004
0720: 30 34 0d 0a 09 30 78 30 30 30 30 41 42 43 32 2c  04...0x0000ABC2,
0730: 20 2f 2f ab 20 20 3d 20 30 78 41 42 20 3d 20 30   //.  = 0xAB = 0
0740: 78 30 30 30 30 30 30 41 42 0d 0a 09 30 78 30 30  x000000AB...0x00
0750: 30 30 41 43 43 32 2c 20 2f 2f ac 20 20 3d 20 30  00ACC2, //.  = 0
0760: 78 41 43 20 3d 20 30 78 30 30 30 30 30 30 41 43  xAC = 0x000000AC
0770: 0d 0a 09 30 78 30 30 30 30 41 44 43 32 2c 20 2f  ...0x0000ADC2, /
0780: 2f ad 20 20 3d 20 30 78 41 44 20 3d 20 30 78 30  /.  = 0xAD = 0x0
0790: 30 30 30 30 30 41 44 0d 0a 09 30 78 30 30 30 30  00000AD...0x0000
07a0: 41 45 43 32 2c 20 2f 2f ae 20 20 3d 20 30 78 41  AEC2, //.  = 0xA
07b0: 45 20 3d 20 30 78 30 30 30 30 30 30 41 45 0d 0a  E = 0x000000AE..
07c0: 09 30 78 30 30 30 30 38 37 44 30 2c 20 2f 2f af  .0x000087D0, //.
07d0: 20 20 3d 20 30 78 41 46 20 3d 20 30 78 30 30 30    = 0xAF = 0x000
07e0: 30 30 34 30 37 0d 0a 09 30 78 30 30 30 30 42 30  00407...0x0000B0
07f0: 43 32 2c 20 2f 2f b0 20 20 3d 20 30 78 42 30 20  C2, //.  = 0xB0 
0800: 3d 20 30 78 30 30 30 30 30 30 42 30 0d 0a 09 30  = 0x000000B0...0
0810: 78 30 30 30 30 42 31 43 32 2c 20 2f 2f b1 20 20  x0000B1C2, //.  
0820: 3d 20 30 78 42 31 20 3d 20 30 78 30 30 30 30 30  = 0xB1 = 0x00000
0830: 30 42 31 0d 0a 09 30 78 30 30 30 30 38 36 44 30  0B1...0x000086D0
0840: 2c 20 2f 2f b2 20 20 3d 20 30 78 42 32 20 3d 20  , //.  = 0xB2 = 
0850: 30 78 30 30 30 30 30 34 30 36 0d 0a 09 30 78 30  0x00000406...0x0
0860: 30 30 30 39 36 44 31 2c 20 2f 2f b3 20 20 3d 20  00096D1, //.  = 
0870: 30 78 42 33 20 3d 20 30 78 30 30 30 30 30 34 35  0xB3 = 0x0000045
0880: 36 0d 0a 09 30 78 30 30 30 30 39 31 44 32 2c 20  6...0x000091D2, 
0890: 2f 2f b4 20 20 3d 20 30 78 42 34 20 3d 20 30 78  //.  = 0xB4 = 0x
08a0: 30 30 30 30 30 34 39 31 0d 0a 09 30 78 30 30 30  00000491...0x000
08b0: 30 42 35 43 32 2c 20 2f 2f b5 20 20 3d 20 30 78  0B5C2, //.  = 0x
08c0: 42 35 20 3d 20 30 78 30 30 30 30 30 30 42 35 0d  B5 = 0x000000B5.
08d0: 0a 09 30 78 30 30 30 30 42 36 43 32 2c 20 2f 2f  ..0x0000B6C2, //
08e0: b6 20 20 3d 20 30 78 42 36 20 3d 20 30 78 30 30  .  = 0xB6 = 0x00
08f0: 30 30 30 30 42 36 0d 0a 09 30 78 30 30 30 30 42  0000B6...0x0000B
0900: 37 43 32 2c 20 2f 2f b7 20 20 3d 20 30 78 42 37  7C2, //.  = 0xB7
0910: 20 3d 20 30 78 30 30 30 30 30 30 42 37 0d 0a 09   = 0x000000B7...
0920: 30 78 30 30 30 30 39 31 44 31 2c 20 2f 2f b8 20  0x000091D1, //. 
0930: 20 3d 20 30 78 42 38 20 3d 20 30 78 30 30 30 30   = 0xB8 = 0x0000
0940: 30 34 35 31 0d 0a 09 30 78 30 30 39 36 38 34 45  0451...0x009684E
0950: 32 2c 20 2f 2f b9 20 20 3d 20 30 78 42 39 20 3d  2, //.  = 0xB9 =
0960: 20 30 78 30 30 30 30 32 31 31 36 0d 0a 09 30 78   0x00002116...0x
0970: 30 30 30 30 39 34 44 31 2c 20 2f 2f ba 20 20 3d  000094D1, //.  =
0980: 20 30 78 42 41 20 3d 20 30 78 30 30 30 30 30 34   0xBA = 0x000004
0990: 35 34 0d 0a 09 30 78 30 30 30 30 42 42 43 32 2c  54...0x0000BBC2,
09a0: 20 2f 2f bb 20 20 3d 20 30 78 42 42 20 3d 20 30   //.  = 0xBB = 0
09b0: 78 30 30 30 30 30 30 42 42 0d 0a 09 30 78 30 30  x000000BB...0x00
09c0: 30 30 39 38 44 31 2c 20 2f 2f bc 20 20 3d 20 30  0098D1, //.  = 0
09d0: 78 42 43 20 3d 20 30 78 30 30 30 30 30 34 35 38  xBC = 0x00000458
09e0: 0d 0a 09 30 78 30 30 30 30 38 35 44 30 2c 20 2f  ...0x000085D0, /
09f0: 2f bd 20 20 3d 20 30 78 42 44 20 3d 20 30 78 30  /.  = 0xBD = 0x0
0a00: 30 30 30 30 34 30 35 0d 0a 09 30 78 30 30 30 30  0000405...0x0000
0a10: 39 35 44 31 2c 20 2f 2f be 20 20 3d 20 30 78 42  95D1, //.  = 0xB
0a20: 45 20 3d 20 30 78 30 30 30 30 30 34 35 35 0d 0a  E = 0x00000455..
0a30: 09 30 78 30 30 30 30 39 37 44 31 2c 20 2f 2f bf  .0x000097D1, //.
0a40: 20 20 3d 20 30 78 42 46 20 3d 20 30 78 30 30 30    = 0xBF = 0x000
0a50: 30 30 34 35 37 0d 0a 09 30 78 30 30 30 30 39 30  00457...0x000090
0a60: 44 30 2c 20 2f 2f c0 20 20 3d 20 30 78 43 30 20  D0, //.  = 0xC0 
0a70: 3d 20 30 78 30 30 30 30 30 34 31 30 0d 0a 09 30  = 0x00000410...0
0a80: 78 30 30 30 30 39 31 44 30 2c 20 2f 2f c1 20 20  x000091D0, //.  
0a90: 3d 20 30 78 43 31 20 3d 20 30 78 30 30 30 30 30  = 0xC1 = 0x00000
0aa0: 34 31 31 0d 0a 09 30 78 30 30 30 30 39 32 44 30  411...0x000092D0
0ab0: 2c 20 2f 2f c2 20 20 3d 20 30 78 43 32 20 3d 20  , //.  = 0xC2 = 
0ac0: 30 78 30 30 30 30 30 34 31 32 0d 0a 09 30 78 30  0x00000412...0x0
0ad0: 30 30 30 39 33 44 30 2c 20 2f 2f c3 20 20 3d 20  00093D0, //.  = 
0ae0: 30 78 43 33 20 3d 20 30 78 30 30 30 30 30 34 31  0xC3 = 0x0000041
0af0: 33 0d 0a 09 30 78 30 30 30 30 39 34 44 30 2c 20  3...0x000094D0, 
0b00: 2f 2f c4 20 20 3d 20 30 78 43 34 20 3d 20 30 78  //.  = 0xC4 = 0x
0b10: 30 30 30 30 30 34 31 34 0d 0a 09 30 78 30 30 30  00000414...0x000
0b20: 30 39 35 44 30 2c 20 2f 2f c5 20 20 3d 20 30 78  095D0, //.  = 0x
0b30: 43 35 20 3d 20 30 78 30 30 30 30 30 34 31 35 0d  C5 = 0x00000415.
0b40: 0a 09 30 78 30 30 30 30 39 36 44 30 2c 20 2f 2f  ..0x000096D0, //
0b50: c6 20 20 3d 20 30 78 43 36 20 3d 20 30 78 30 30  .  = 0xC6 = 0x00
0b60: 30 30 30 34 31 36 0d 0a 09 30 78 30 30 30 30 39  000416...0x00009
0b70: 37 44 30 2c 20 2f 2f c7 20 20 3d 20 30 78 43 37  7D0, //.  = 0xC7
0b80: 20 3d 20 30 78 30 30 30 30 30 34 31 37 0d 0a 09   = 0x00000417...
0b90: 30 78 30 30 30 30 39 38 44 30 2c 20 2f 2f c8 20  0x000098D0, //. 
0ba0: 20 3d 20 30 78 43 38 20 3d 20 30 78 30 30 30 30   = 0xC8 = 0x0000
0bb0: 30 34 31 38 0d 0a 09 30 78 30 30 30 30 39 39 44  0418...0x000099D
0bc0: 30 2c 20 2f 2f c9 20 20 3d 20 30 78 43 39 20 3d  0, //.  = 0xC9 =
0bd0: 20 30 78 30 30 30 30 30 34 31 39 0d 0a 09 30 78   0x00000419...0x
0be0: 30 30 30 30 39 41 44 30 2c 20 2f 2f ca 20 20 3d  00009AD0, //.  =
0bf0: 20 30 78 43 41 20 3d 20 30 78 30 30 30 30 30 34   0xCA = 0x000004
0c00: 31 41 0d 0a 09 30 78 30 30 30 30 39 42 44 30 2c  1A...0x00009BD0,
0c10: 20 2f 2f cb 20 20 3d 20 30 78 43 42 20 3d 20 30   //.  = 0xCB = 0
0c20: 78 30 30 30 30 30 34 31 42 0d 0a 09 30 78 30 30  x0000041B...0x00
0c30: 30 30 39 43 44 30 2c 20 2f 2f cc 20 20 3d 20 30  009CD0, //.  = 0
0c40: 78 43 43 20 3d 20 30 78 30 30 30 30 30 34 31 43  xCC = 0x0000041C
0c50: 0d 0a 09 30 78 30 30 30 30 39 44 44 30 2c 20 2f  ...0x00009DD0, /
0c60: 2f cd 20 20 3d 20 30 78 43 44 20 3d 20 30 78 30  /.  = 0xCD = 0x0
0c70: 30 30 30 30 34 31 44 0d 0a 09 30 78 30 30 30 30  000041D...0x0000
0c80: 39 45 44 30 2c 20 2f 2f ce 20 20 3d 20 30 78 43  9ED0, //.  = 0xC
0c90: 45 20 3d 20 30 78 30 30 30 30 30 34 31 45 0d 0a  E = 0x0000041E..
0ca0: 09 30 78 30 30 30 30 39 46 44 30 2c 20 2f 2f cf  .0x00009FD0, //.
0cb0: 20 20 3d 20 30 78 43 46 20 3d 20 30 78 30 30 30    = 0xCF = 0x000
0cc0: 30 30 34 31 46 0d 0a 09 30 78 30 30 30 30 41 30  0041F...0x0000A0
0cd0: 44 30 2c 20 2f 2f d0 20 20 3d 20 30 78 44 30 20  D0, //.  = 0xD0 
0ce0: 3d 20 30 78 30 30 30 30 30 34 32 30 0d 0a 09 30  = 0x00000420...0
0cf0: 78 30 30 30 30 41 31 44 30 2c 20 2f 2f d1 20 20  x0000A1D0, //.  
0d00: 3d 20 30 78 44 31 20 3d 20 30 78 30 30 30 30 30  = 0xD1 = 0x00000
0d10: 34 32 31 0d 0a 09 30 78 30 30 30 30 41 32 44 30  421...0x0000A2D0
0d20: 2c 20 2f 2f d2 20 20 3d 20 30 78 44 32 20 3d 20  , //.  = 0xD2 = 
0d30: 30 78 30 30 30 30 30 34 32 32 0d 0a 09 30 78 30  0x00000422...0x0
0d40: 30 30 30 41 33 44 30 2c 20 2f 2f d3 20 20 3d 20  000A3D0, //.  = 
0d50: 30 78 44 33 20 3d 20 30 78 30 30 30 30 30 34 32  0xD3 = 0x0000042
0d60: 33 0d 0a 09 30 78 30 30 30 30 41 34 44 30 2c 20  3...0x0000A4D0, 
0d70: 2f 2f d4 20 20 3d 20 30 78 44 34 20 3d 20 30 78  //.  = 0xD4 = 0x
0d80: 30 30 30 30 30 34 32 34 0d 0a 09 30 78 30 30 30  00000424...0x000
0d90: 30 41 35 44 30 2c 20 2f 2f d5 20 20 3d 20 30 78  0A5D0, //.  = 0x
0da0: 44 35 20 3d 20 30 78 30 30 30 30 30 34 32 35 0d  D5 = 0x00000425.
0db0: 0a 09 30 78 30 30 30 30 41 36 44 30 2c 20 2f 2f  ..0x0000A6D0, //
0dc0: d6 20 20 3d 20 30 78 44 36 20 3d 20 30 78 30 30  .  = 0xD6 = 0x00
0dd0: 30 30 30 34 32 36 0d 0a 09 30 78 30 30 30 30 41  000426...0x0000A
0de0: 37 44 30 2c 20 2f 2f d7 20 20 3d 20 30 78 44 37  7D0, //.  = 0xD7
0df0: 20 3d 20 30 78 30 30 30 30 30 34 32 37 0d 0a 09   = 0x00000427...
0e00: 30 78 30 30 30 30 41 38 44 30 2c 20 2f 2f d8 20  0x0000A8D0, //. 
0e10: 20 3d 20 30 78 44 38 20 3d 20 30 78 30 30 30 30   = 0xD8 = 0x0000
0e20: 30 34 32 38 0d 0a 09 30 78 30 30 30 30 41 39 44  0428...0x0000A9D
0e30: 30 2c 20 2f 2f d9 20 20 3d 20 30 78 44 39 20 3d  0, //.  = 0xD9 =
0e40: 20 30 78 30 30 30 30 30 34 32 39 0d 0a 09 30 78   0x00000429...0x
0e50: 30 30 30 30 41 41 44 30 2c 20 2f 2f da 20 20 3d  0000AAD0, //.  =
0e60: 20 30 78 44 41 20 3d 20 30 78 30 30 30 30 30 34   0xDA = 0x000004
0e70: 32 41 0d 0a 09 30 78 30 30 30 30 41 42 44 30 2c  2A...0x0000ABD0,
0e80: 20 2f 2f db 20 20 3d 20 30 78 44 42 20 3d 20 30   //.  = 0xDB = 0
0e90: 78 30 30 30 30 30 34 32 42 0d 0a 09 30 78 30 30  x0000042B...0x00
0ea0: 30 30 41 43 44 30 2c 20 2f 2f dc 20 20 3d 20 30  00ACD0, //.  = 0
0eb0: 78 44 43 20 3d 20 30 78 30 30 30 30 30 34 32 43  xDC = 0x0000042C
0ec0: 0d 0a 09 30 78 30 30 30 30 41 44 44 30 2c 20 2f  ...0x0000ADD0, /
0ed0: 2f dd 20 20 3d 20 30 78 44 44 20 3d 20 30 78 30  /.  = 0xDD = 0x0
0ee0: 30 30 30 30 34 32 44 0d 0a 09 30 78 30 30 30 30  000042D...0x0000
0ef0: 41 45 44 30 2c 20 2f 2f de 20 20 3d 20 30 78 44  AED0, //.  = 0xD
0f00: 45 20 3d 20 30 78 30 30 30 30 30 34 32 45 0d 0a  E = 0x0000042E..
0f10: 09 30 78 30 30 30 30 41 46 44 30 2c 20 2f 2f df  .0x0000AFD0, //.
0f20: 20 20 3d 20 30 78 44 46 20 3d 20 30 78 30 30 30    = 0xDF = 0x000
0f30: 30 30 34 32 46 0d 0a 09 30 78 30 30 30 30 42 30  0042F...0x0000B0
0f40: 44 30 2c 20 2f 2f e0 20 20 3d 20 30 78 45 30 20  D0, //.  = 0xE0 
0f50: 3d 20 30 78 30 30 30 30 30 34 33 30 0d 0a 09 30  = 0x00000430...0
0f60: 78 30 30 30 30 42 31 44 30 2c 20 2f 2f e1 20 20  x0000B1D0, //.  
0f70: 3d 20 30 78 45 31 20 3d 20 30 78 30 30 30 30 30  = 0xE1 = 0x00000
0f80: 34 33 31 0d 0a 09 30 78 30 30 30 30 42 32 44 30  431...0x0000B2D0
0f90: 2c 20 2f 2f e2 20 20 3d 20 30 78 45 32 20 3d 20  , //.  = 0xE2 = 
0fa0: 30 78 30 30 30 30 30 34 33 32 0d 0a 09 30 78 30  0x00000432...0x0
0fb0: 30 30 30 42 33 44 30 2c 20 2f 2f e3 20 20 3d 20  000B3D0, //.  = 
0fc0: 30 78 45 33 20 3d 20 30 78 30 30 30 30 30 34 33  0xE3 = 0x0000043
0fd0: 33 0d 0a 09 30 78 30 30 30 30 42 34 44 30 2c 20  3...0x0000B4D0, 
0fe0: 2f 2f e4 20 20 3d 20 30 78 45 34 20 3d 20 30 78  //.  = 0xE4 = 0x
0ff0: 30 30 30 30 30 34 33 34 0d 0a 09 30 78 30 30 30  00000434...0x000
1000: 30 42 35 44 30 2c 20 2f 2f e5 20 20 3d 20 30 78  0B5D0, //.  = 0x
1010: 45 35 20 3d 20 30 78 30 30 30 30 30 34 33 35 0d  E5 = 0x00000435.
1020: 0a 09 30 78 30 30 30 30 42 36 44 30 2c 20 2f 2f  ..0x0000B6D0, //
1030: e6 20 20 3d 20 30 78 45 36 20 3d 20 30 78 30 30  .  = 0xE6 = 0x00
1040: 30 30 30 34 33 36 0d 0a 09 30 78 30 30 30 30 42  000436...0x0000B
1050: 37 44 30 2c 20 2f 2f e7 20 20 3d 20 30 78 45 37  7D0, //.  = 0xE7
1060: 20 3d 20 30 78 30 30 30 30 30 34 33 37 0d 0a 09   = 0x00000437...
1070: 30 78 30 30 30 30 42 38 44 30 2c 20 2f 2f e8 20  0x0000B8D0, //. 
1080: 20 3d 20 30 78 45 38 20 3d 20 30 78 30 30 30 30   = 0xE8 = 0x0000
1090: 30 34 33 38 0d 0a 09 30 78 30 30 30 30 42 39 44  0438...0x0000B9D
10a0: 30 2c 20 2f 2f e9 20 20 3d 20 30 78 45 39 20 3d  0, //.  = 0xE9 =
10b0: 20 30 78 30 30 30 30 30 34 33 39 0d 0a 09 30 78   0x00000439...0x
10c0: 30 30 30 30 42 41 44 30 2c 20 2f 2f ea 20 20 3d  0000BAD0, //.  =
10d0: 20 30 78 45 41 20 3d 20 30 78 30 30 30 30 30 34   0xEA = 0x000004
10e0: 33 41 0d 0a 09 30 78 30 30 30 30 42 42 44 30 2c  3A...0x0000BBD0,
10f0: 20 2f 2f eb 20 20 3d 20 30 78 45 42 20 3d 20 30   //.  = 0xEB = 0
1100: 78 30 30 30 30 30 34 33 42 0d 0a 09 30 78 30 30  x0000043B...0x00
1110: 30 30 42 43 44 30 2c 20 2f 2f ec 20 20 3d 20 30  00BCD0, //.  = 0
1120: 78 45 43 20 3d 20 30 78 30 30 30 30 30 34 33 43  xEC = 0x0000043C
1130: 0d 0a 09 30 78 30 30 30 30 42 44 44 30 2c 20 2f  ...0x0000BDD0, /
1140: 2f ed 20 20 3d 20 30 78 45 44 20 3d 20 30 78 30  /.  = 0xED = 0x0
1150: 30 30 30 30 34 33 44 0d 0a 09 30 78 30 30 30 30  000043D...0x0000
1160: 42 45 44 30 2c 20 2f 2f ee 20 20 3d 20 30 78 45  BED0, //.  = 0xE
1170: 45 20 3d 20 30 78 30 30 30 30 30 34 33 45 0d 0a  E = 0x0000043E..
1180: 09 30 78 30 30 30 30 42 46 44 30 2c 20 2f 2f ef  .0x0000BFD0, //.
1190: 20 20 3d 20 30 78 45 46 20 3d 20 30 78 30 30 30    = 0xEF = 0x000
11a0: 30 30 34 33 46 0d 0a 09 30 78 30 30 30 30 38 30  0043F...0x000080
11b0: 44 31 2c 20 2f 2f f0 20 20 3d 20 30 78 46 30 20  D1, //.  = 0xF0 
11c0: 3d 20 30 78 30 30 30 30 30 34 34 30 0d 0a 09 30  = 0x00000440...0
11d0: 78 30 30 30 30 38 31 44 31 2c 20 2f 2f f1 20 20  x000081D1, //.  
11e0: 3d 20 30 78 46 31 20 3d 20 30 78 30 30 30 30 30  = 0xF1 = 0x00000
11f0: 34 34 31 0d 0a 09 30 78 30 30 30 30 38 32 44 31  441...0x000082D1
1200: 2c 20 2f 2f f2 20 20 3d 20 30 78 46 32 20 3d 20  , //.  = 0xF2 = 
1210: 30 78 30 30 30 30 30 34 34 32 0d 0a 09 30 78 30  0x00000442...0x0
1220: 30 30 30 38 33 44 31 2c 20 2f 2f f3 20 20 3d 20  00083D1, //.  = 
1230: 30 78 46 33 20 3d 20 30 78 30 30 30 30 30 34 34  0xF3 = 0x0000044
1240: 33 0d 0a 09 30 78 30 30 30 30 38 34 44 31 2c 20  3...0x000084D1, 
1250: 2f 2f f4 20 20 3d 20 30 78 46 34 20 3d 20 30 78  //.  = 0xF4 = 0x
1260: 30 30 30 30 30 34 34 34 0d 0a 09 30 78 30 30 30  00000444...0x000
1270: 30 38 35 44 31 2c 20 2f 2f f5 20 20 3d 20 30 78  085D1, //.  = 0x
1280: 46 35 20 3d 20 30 78 30 30 30 30 30 34 34 35 0d  F5 = 0x00000445.
1290: 0a 09 30 78 30 30 30 30 38 36 44 31 2c 20 2f 2f  ..0x000086D1, //
12a0: f6 20 20 3d 20 30 78 46 36 20 3d 20 30 78 30 30  .  = 0xF6 = 0x00
12b0: 30 30 30 34 34 36 0d 0a 09 30 78 30 30 30 30 38  000446...0x00008
12c0: 37 44 31 2c 20 2f 2f f7 20 20 3d 20 30 78 46 37  7D1, //.  = 0xF7
12d0: 20 3d 20 30 78 30 30 30 30 30 34 34 37 0d 0a 09   = 0x00000447...
12e0: 30 78 30 30 30 30 38 38 44 31 2c 20 2f 2f f8 20  0x000088D1, //. 
12f0: 20 3d 20 30 78 46 38 20 3d 20 30 78 30 30 30 30   = 0xF8 = 0x0000
1300: 30 34 34 38 0d 0a 09 30 78 30 30 30 30 38 39 44  0448...0x000089D
1310: 31 2c 20 2f 2f f9 20 20 3d 20 30 78 46 39 20 3d  1, //.  = 0xF9 =
1320: 20 30 78 30 30 30 30 30 34 34 39 0d 0a 09 30 78   0x00000449...0x
1330: 30 30 30 30 38 41 44 31 2c 20 2f 2f fa 20 20 3d  00008AD1, //.  =
1340: 20 30 78 46 41 20 3d 20 30 78 30 30 30 30 30 34   0xFA = 0x000004
1350: 34 41 0d 0a 09 30 78 30 30 30 30 38 42 44 31 2c  4A...0x00008BD1,
1360: 20 2f 2f fb 20 20 3d 20 30 78 46 42 20 3d 20 30   //.  = 0xFB = 0
1370: 78 30 30 30 30 30 34 34 42 0d 0a 09 30 78 30 30  x0000044B...0x00
1380: 30 30 38 43 44 31 2c 20 2f 2f fc 20 20 3d 20 30  008CD1, //.  = 0
1390: 78 46 43 20 3d 20 30 78 30 30 30 30 30 34 34 43  xFC = 0x0000044C
13a0: 0d 0a 09 30 78 30 30 30 30 38 44 44 31 2c 20 2f  ...0x00008DD1, /
13b0: 2f fd 20 20 3d 20 30 78 46 44 20 3d 20 30 78 30  /.  = 0xFD = 0x0
13c0: 30 30 30 30 34 34 44 0d 0a 09 30 78 30 30 30 30  000044D...0x0000
13d0: 38 45 44 31 2c 20 2f 2f fe 20 20 3d 20 30 78 46  8ED1, //.  = 0xF
13e0: 45 20 3d 20 30 78 30 30 30 30 30 34 34 45 0d 0a  E = 0x0000044E..
13f0: 09 30 78 30 30 30 30 38 46 44 31 2c 20 2f 2f ff  .0x00008FD1, //.
1400: 20 20 3d 20 30 78 46 46 20 3d 20 30 78 30 30 30    = 0xFF = 0x000
1410: 30 30 34 34 46 0d 0a 7d 3b 0d 0a 0d 0a 42 59 54  0044F..};....BYT
1420: 45 20 6e 65 78 74 47 72 61 74 55 53 79 6d 62 6f  E nextGratUSymbo
1430: 6c 73 5b 32 35 36 5d 20 3d 20 7b 30 7d 3b 0d 0a  ls[256] = {0};..
1440: 44 57 4f 52 44 20 6e 6f 43 61 73 65 43 6f 6d 70  DWORD noCaseComp
1450: 61 72 65 5b 32 35 36 5d 20 3d 20 7b 30 7d 3b 0d  are[256] = {0};.
1460: 0a 0d 0a 0d 0a 43 4d 61 70 50 74 72 54 6f 50 74  .....CMapPtrToPt
1470: 72 20 75 38 74 65 78 74 3a 3a 75 77 31 32 35 31  r u8text::uw1251
1480: 3b 0d 0a 0d 0a 76 6f 69 64 20 75 38 74 65 78 74  ;....void u8text
1490: 3a 3a 69 6e 69 74 28 29 0d 0a 7b 0d 0a 09 66 6f  ::init()..{...fo
14a0: 72 28 75 6e 73 69 67 6e 65 64 20 73 68 6f 72 74  r(unsigned short
14b0: 20 69 20 3d 20 30 3b 20 69 20 3c 20 30 78 46 46   i = 0; i < 0xFF
14c0: 46 46 20 3b 20 69 2b 2b 29 0d 0a 09 09 6f 61 73  FF ; i++)....oas
14d0: 55 70 70 65 72 32 4c 6f 77 65 72 5b 69 5d 20 3d  Upper2Lower[i] =
14e0: 20 69 3b 0d 0a 09 43 68 61 72 4c 6f 77 65 72 42   i;...CharLowerB
14f0: 75 66 66 57 28 6f 61 73 55 70 70 65 72 32 4c 6f  uffW(oasUpper2Lo
1500: 77 65 72 20 2b 20 33 32 2c 20 30 78 46 46 46 46  wer + 32, 0xFFFF
1510: 20 2d 20 33 32 29 3b 0d 0a 0d 0a 09 63 68 61 72   - 32);.....char
1520: 20 73 74 72 5b 36 35 5d 2c 20 73 73 20 3d 20 27   str[65], ss = '
1530: 5c 78 38 30 27 3b 0d 0a 09 66 6f 72 28 69 6e 74  \x80';...for(int
1540: 20 73 20 3d 20 30 3b 20 73 20 3c 20 36 34 3b 20   s = 0; s < 64; 
1550: 73 2b 2b 29 0d 0a 09 09 73 74 72 5b 73 5d 20 3d  s++)....str[s] =
1560: 20 73 73 2b 2b 3b 0d 0a 09 73 74 72 5b 36 34 5d   ss++;...str[64]
1570: 20 3d 20 30 3b 0d 0a 09 57 43 48 41 52 20 77 73   = 0;...WCHAR ws
1580: 74 72 5b 36 35 5d 3b 0d 0a 09 4d 75 6c 74 69 42  tr[65];...MultiB
1590: 79 74 65 54 6f 57 69 64 65 43 68 61 72 28 43 50  yteToWideChar(CP
15a0: 5f 41 43 50 2c 20 30 2c 20 73 74 72 2c 20 36 34  _ACP, 0, str, 64
15b0: 2c 20 77 73 74 72 2c 20 36 35 29 3b 0d 0a 09 0d  , wstr, 65);....
15c0: 0a 09 75 77 31 32 35 31 2e 49 6e 69 74 48 61 73  ..uw1251.InitHas
15d0: 68 54 61 62 6c 65 28 37 31 29 3b 0d 0a 0d 0a 09  hTable(71);.....
15e0: 66 6f 72 28 69 20 3d 20 30 3b 20 69 20 3c 20 36  for(i = 0; i < 6
15f0: 34 20 3b 20 69 2b 2b 29 0d 0a 09 09 75 77 31 32  4 ; i++)....uw12
1600: 35 31 5b 28 76 6f 69 64 2a 29 77 73 74 72 5b 69  51[(void*)wstr[i
1610: 5d 5d 20 3d 20 28 76 6f 69 64 2a 29 73 74 72 5b  ]] = (void*)str[
1620: 69 5d 3b 0d 0a 0d 0a 09 0d 0a 09 2f 2f 20 c8 ed  i];........// ..
1630: e8 f6 e8 e0 eb e8 e7 e8 f0 f3 e5 ec 20 f2 e0 e1  ............ ...
1640: eb e8 f6 f3 20 ed e5 f0 e5 e3 e8 f1 f2 f0 ee e2  .... ...........
1650: ee e3 ee 20 f1 f0 e0 e2 ed e5 ed e8 ff 0d 0a 09  ... ............
1660: 43 4d 61 70 50 74 72 54 6f 50 74 72 20 6d 61 70  CMapPtrToPtr map
1670: 57 65 69 67 68 74 54 6f 55 70 70 65 72 53 79 6d  WeightToUpperSym
1680: 62 6f 6c 3b 0d 0a 09 53 44 42 45 6e 67 43 6f 64  bol;...SDBEngCod
1690: 65 50 61 67 65 2a 20 70 50 61 67 65 20 3d 20 43  ePage* pPage = C
16a0: 44 42 45 6e 67 44 42 37 3a 3a 47 65 74 53 65 6c  DBEngDB7::GetSel
16b0: 65 63 74 65 64 43 6f 64 65 50 61 67 65 28 29 3b  ectedCodePage();
16c0: 0d 0a 0d 0a 09 66 6f 72 28 44 57 4f 52 44 20 6b  .....for(DWORD k
16d0: 20 3d 20 30 3b 20 6b 20 3c 20 32 35 36 20 3b 20   = 0; k < 256 ; 
16e0: 6b 2b 2b 29 0d 0a 09 7b 0d 0a 09 09 6e 6f 43 61  k++)...{....noCa
16f0: 73 65 43 6f 6d 70 61 72 65 5b 6b 5d 20 3d 20 70  seCompare[k] = p
1700: 50 61 67 65 2d 3e 6f 72 64 65 72 57 65 69 67 68  Page->orderWeigh
1710: 74 46 6f 72 43 68 61 72 73 5b 70 50 61 67 65 2d  tForChars[pPage-
1720: 3e 75 70 70 65 72 53 79 6d 62 6f 6c 73 5b 6b 5d  >upperSymbols[k]
1730: 5d 3b 0d 0a 09 09 6d 61 70 57 65 69 67 68 74 54  ];....mapWeightT
1740: 6f 55 70 70 65 72 53 79 6d 62 6f 6c 5b 28 76 6f  oUpperSymbol[(vo
1750: 69 64 2a 29 6e 6f 43 61 73 65 43 6f 6d 70 61 72  id*)noCaseCompar
1760: 65 5b 6b 5d 5d 20 3d 20 28 76 6f 69 64 2a 29 70  e[k]] = (void*)p
1770: 50 61 67 65 2d 3e 75 70 70 65 72 53 79 6d 62 6f  Page->upperSymbo
1780: 6c 73 5b 6b 5d 3b 0d 0a 09 7d 0d 0a 09 2f 2f 20  ls[k];...}...// 
1790: d4 e8 ea f1 e8 ec 20 ef ee f0 ff e4 ee ea 20 e4  ...... ....... .
17a0: eb ff 20 ef f0 ee e1 e5 eb e0 0d 0a 09 44 57 4f  .. ..........DWO
17b0: 52 44 20 66 69 78 53 70 61 63 65 20 3d 20 6e 6f  RD fixSpace = no
17c0: 43 61 73 65 43 6f 6d 70 61 72 65 5b 27 20 27 5d  CaseCompare[' ']
17d0: 3b 0d 0a 09 6e 6f 43 61 73 65 43 6f 6d 70 61 72  ;...noCaseCompar
17e0: 65 5b 27 20 27 5d 20 3d 20 6e 6f 43 61 73 65 43  e[' '] = noCaseC
17f0: 6f 6d 70 61 72 65 5b 31 32 37 5d 3b 0d 0a 09 6e  ompare[127];...n
1800: 6f 43 61 73 65 43 6f 6d 70 61 72 65 5b 31 32 37  oCaseCompare[127
1810: 5d 20 3d 20 66 69 78 53 70 61 63 65 3b 0d 0a 0d  ] = fixSpace;...
1820: 0a 0d 0a 09 2f 2f 20 d2 e5 ef e5 f0 fc 20 ed e0  ....// ...... ..
1830: e4 ee 20 e7 e0 ef ee eb ed e8 f2 fc 20 f2 e0 e1  .. ......... ...
1840: eb e8 f6 f3 20 22 f1 eb e5 e4 f3 fe f9 e8 e9 20  .... "......... 
1850: e1 ee eb fc f8 e8 e9 20 f1 e8 ec e2 ee eb 20 e2  ....... ...... .
1860: 20 e2 e5 f0 f5 ed e5 ec 20 f0 e5 e3 e8 f1 f2 f0   ....... .......
1870: e5 22 0d 0a 09 66 6f 72 28 6b 20 3d 20 31 3b 20  ."...for(k = 1; 
1880: 6b 20 3c 20 32 35 36 3b 20 6b 2b 2b 29 0d 0a 09  k < 256; k++)...
1890: 7b 0d 0a 09 09 44 57 4f 52 44 20 77 65 69 67 68  {....DWORD weigh
18a0: 74 20 3d 20 6e 6f 43 61 73 65 43 6f 6d 70 61 72  t = noCaseCompar
18b0: 65 5b 6b 5d 20 2b 20 31 2c 20 6e 65 78 74 53 79  e[k] + 1, nextSy
18c0: 6d 62 20 3d 20 30 3b 0d 0a 09 09 77 68 69 6c 65  mb = 0;....while
18d0: 28 77 65 69 67 68 74 20 3c 20 32 35 36 29 0d 0a  (weight < 256)..
18e0: 09 09 7b 0d 0a 09 09 09 69 66 28 6d 61 70 57 65  ..{.....if(mapWe
18f0: 69 67 68 74 54 6f 55 70 70 65 72 53 79 6d 62 6f  ightToUpperSymbo
1900: 6c 2e 4c 6f 6f 6b 75 70 28 28 76 6f 69 64 2a 29  l.Lookup((void*)
1910: 77 65 69 67 68 74 2c 20 28 76 6f 69 64 2a 26 29  weight, (void*&)
1920: 6e 65 78 74 53 79 6d 62 29 29 0d 0a 09 09 09 09  nextSymb))......
1930: 62 72 65 61 6b 3b 0d 0a 09 09 09 77 65 69 67 68  break;.....weigh
1940: 74 2b 2b 3b 0d 0a 09 09 7d 0d 0a 09 09 6e 65 78  t++;....}....nex
1950: 74 47 72 61 74 55 53 79 6d 62 6f 6c 73 5b 6b 5d  tGratUSymbols[k]
1960: 20 3d 20 6e 65 78 74 53 79 6d 62 3b 0d 0a 09 7d   = nextSymb;...}
1970: 0d 0a 7d 0d 0a 0d 0a 2f 2a 0d 0a 2a 2a 20 54 68  ..}..../*..** Th
1980: 69 73 20 6c 6f 6f 6b 75 70 20 74 61 62 6c 65 20  is lookup table 
1990: 69 73 20 75 73 65 64 20 74 6f 20 68 65 6c 70 20  is used to help 
19a0: 64 65 63 6f 64 65 20 74 68 65 20 66 69 72 73 74  decode the first
19b0: 20 62 79 74 65 20 6f 66 0d 0a 2a 2a 20 61 20 6d   byte of..** a m
19c0: 75 6c 74 69 2d 62 79 74 65 20 55 54 46 38 20 63  ulti-byte UTF8 c
19d0: 68 61 72 61 63 74 65 72 2e 0d 0a 2a 2f 0d 0a 73  haracter...*/..s
19e0: 74 61 74 69 63 20 63 6f 6e 73 74 20 75 6e 73 69  tatic const unsi
19f0: 67 6e 65 64 20 63 68 61 72 20 73 71 6c 69 74 65  gned char sqlite
1a00: 33 55 74 66 54 72 61 6e 73 31 5b 5d 20 3d 20 7b  3UtfTrans1[] = {
1a10: 0d 0a 20 20 30 78 30 30 2c 20 30 78 30 31 2c 20  ..  0x00, 0x01, 
1a20: 30 78 30 32 2c 20 30 78 30 33 2c 20 30 78 30 34  0x02, 0x03, 0x04
1a30: 2c 20 30 78 30 35 2c 20 30 78 30 36 2c 20 30 78  , 0x05, 0x06, 0x
1a40: 30 37 2c 0d 0a 20 20 30 78 30 38 2c 20 30 78 30  07,..  0x08, 0x0
1a50: 39 2c 20 30 78 30 61 2c 20 30 78 30 62 2c 20 30  9, 0x0a, 0x0b, 0
1a60: 78 30 63 2c 20 30 78 30 64 2c 20 30 78 30 65 2c  x0c, 0x0d, 0x0e,
1a70: 20 30 78 30 66 2c 0d 0a 20 20 30 78 31 30 2c 20   0x0f,..  0x10, 
1a80: 30 78 31 31 2c 20 30 78 31 32 2c 20 30 78 31 33  0x11, 0x12, 0x13
1a90: 2c 20 30 78 31 34 2c 20 30 78 31 35 2c 20 30 78  , 0x14, 0x15, 0x
1aa0: 31 36 2c 20 30 78 31 37 2c 0d 0a 20 20 30 78 31  16, 0x17,..  0x1
1ab0: 38 2c 20 30 78 31 39 2c 20 30 78 31 61 2c 20 30  8, 0x19, 0x1a, 0
1ac0: 78 31 62 2c 20 30 78 31 63 2c 20 30 78 31 64 2c  x1b, 0x1c, 0x1d,
1ad0: 20 30 78 31 65 2c 20 30 78 31 66 2c 0d 0a 20 20   0x1e, 0x1f,..  
1ae0: 30 78 30 30 2c 20 30 78 30 31 2c 20 30 78 30 32  0x00, 0x01, 0x02
1af0: 2c 20 30 78 30 33 2c 20 30 78 30 34 2c 20 30 78  , 0x03, 0x04, 0x
1b00: 30 35 2c 20 30 78 30 36 2c 20 30 78 30 37 2c 0d  05, 0x06, 0x07,.
1b10: 0a 20 20 30 78 30 38 2c 20 30 78 30 39 2c 20 30  .  0x08, 0x09, 0
1b20: 78 30 61 2c 20 30 78 30 62 2c 20 30 78 30 63 2c  x0a, 0x0b, 0x0c,
1b30: 20 30 78 30 64 2c 20 30 78 30 65 2c 20 30 78 30   0x0d, 0x0e, 0x0
1b40: 66 2c 0d 0a 20 20 30 78 30 30 2c 20 30 78 30 31  f,..  0x00, 0x01
1b50: 2c 20 30 78 30 32 2c 20 30 78 30 33 2c 20 30 78  , 0x02, 0x03, 0x
1b60: 30 34 2c 20 30 78 30 35 2c 20 30 78 30 36 2c 20  04, 0x05, 0x06, 
1b70: 30 78 30 37 2c 0d 0a 20 20 30 78 30 30 2c 20 30  0x07,..  0x00, 0
1b80: 78 30 31 2c 20 30 78 30 32 2c 20 30 78 30 33 2c  x01, 0x02, 0x03,
1b90: 20 30 78 30 30 2c 20 30 78 30 31 2c 20 30 78 30   0x00, 0x01, 0x0
1ba0: 30 2c 20 30 78 30 30 2c 0d 0a 7d 3b 0d 0a 0d 0a  0, 0x00,..};....
1bb0: 0d 0a 43 53 74 72 69 6e 67 20 75 38 74 65 78 74  ..CString u8text
1bc0: 3a 3a 66 72 6f 6d 55 74 66 38 28 4c 50 43 53 54  ::fromUtf8(LPCST
1bd0: 52 20 73 74 72 53 72 63 29 0d 0a 7b 0d 0a 09 43  R strSrc)..{...C
1be0: 53 74 72 69 6e 67 20 72 65 73 3b 0d 0a 09 69 66  String res;...if
1bf0: 28 21 73 74 72 53 72 63 29 0d 0a 09 09 72 65 74  (!strSrc)....ret
1c00: 75 72 6e 20 72 65 73 3b 0d 0a 09 69 6e 74 20 73  urn res;...int s
1c10: 6c 65 6e 20 3d 20 73 74 72 6c 65 6e 28 73 74 72  len = strlen(str
1c20: 53 72 63 29 3b 0d 0a 09 63 68 61 72 20 2a 70 57  Src);...char *pW
1c30: 72 69 74 65 20 3d 20 72 65 73 2e 47 65 74 42 75  rite = res.GetBu
1c40: 66 66 65 72 53 65 74 4c 65 6e 67 74 68 28 73 6c  fferSetLength(sl
1c50: 65 6e 29 2c 20 2a 70 53 74 61 72 74 20 3d 20 70  en), *pStart = p
1c60: 57 72 69 74 65 3b 0d 0a 09 63 6f 6e 73 74 20 75  Write;...const u
1c70: 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a 70 74  nsigned char *pt
1c80: 72 20 3d 20 28 63 6f 6e 73 74 20 75 6e 73 69 67  r = (const unsig
1c90: 6e 65 64 20 63 68 61 72 2a 29 73 74 72 53 72 63  ned char*)strSrc
1ca0: 3b 0d 0a 09 77 68 69 6c 65 28 2a 70 74 72 29 0d  ;...while(*ptr).
1cb0: 0a 09 7b 0d 0a 09 09 44 57 4f 52 44 20 75 73 20  ..{....DWORD us 
1cc0: 3d 20 73 74 61 74 69 63 5f 63 61 73 74 3c 44 57  = static_cast<DW
1cd0: 4f 52 44 3e 28 2a 70 74 72 2b 2b 29 3b 0d 0a 09  ORD>(*ptr++);...
1ce0: 09 69 66 28 75 73 20 3c 20 30 78 38 30 29 0d 0a  .if(us < 0x80)..
1cf0: 09 09 09 2a 70 57 72 69 74 65 2b 2b 20 3d 20 28  ...*pWrite++ = (
1d00: 63 68 61 72 29 20 75 73 3b 0d 0a 09 09 65 6c 73  char) us;....els
1d10: 65 0d 0a 09 09 7b 0d 0a 09 09 09 75 73 20 3d 20  e....{.....us = 
1d20: 73 71 6c 69 74 65 33 55 74 66 54 72 61 6e 73 31  sqlite3UtfTrans1
1d30: 5b 75 73 20 2d 20 30 78 43 30 5d 3b 0d 0a 09 09  [us - 0xC0];....
1d40: 09 77 68 69 6c 65 28 28 2a 70 74 72 20 26 20 30  .while((*ptr & 0
1d50: 78 43 30 29 20 3d 3d 20 30 78 38 30 29 0d 0a 09  xC0) == 0x80)...
1d60: 09 09 09 75 73 20 3d 20 28 75 73 20 3c 3c 20 36  ...us = (us << 6
1d70: 29 20 2b 20 28 30 78 33 46 20 26 20 2a 28 70 74  ) + (0x3F & *(pt
1d80: 72 2b 2b 29 29 3b 0d 0a 09 09 09 0d 0a 09 09 09  r++));..........
1d90: 69 66 28 75 73 20 3e 3d 20 30 78 30 30 30 30 30  if(us >= 0x00000
1da0: 34 31 30 20 26 26 20 75 73 20 3c 3d 20 30 78 30  410 && us <= 0x0
1db0: 30 30 30 30 34 34 46 29 09 2f 2f 20 c0 2d ff 0d  000044F).// .-..
1dc0: 0a 09 09 09 09 2a 70 57 72 69 74 65 2b 2b 20 3d  .....*pWrite++ =
1dd0: 20 75 73 20 2d 20 38 34 38 3b 0d 0a 09 09 09 65   us - 848;.....e
1de0: 6c 73 65 20 69 66 28 75 73 20 3d 3d 20 30 78 30  lse if(us == 0x0
1df0: 30 30 30 30 34 30 31 29 0d 0a 09 09 09 09 2a 70  0000401)......*p
1e00: 57 72 69 74 65 2b 2b 20 3d 20 27 a8 27 3b 0d 0a  Write++ = '.';..
1e10: 09 09 09 65 6c 73 65 20 69 66 28 75 73 20 3d 3d  ...else if(us ==
1e20: 20 30 78 30 30 30 30 30 34 35 31 29 0d 0a 09 09   0x00000451)....
1e30: 09 09 2a 70 57 72 69 74 65 2b 2b 20 3d 20 27 b8  ..*pWrite++ = '.
1e40: 27 3b 0d 0a 09 09 09 65 6c 73 65 20 69 66 28 75  ';.....else if(u
1e50: 73 20 3d 3d 20 30 78 30 30 30 30 32 31 31 36 29  s == 0x00002116)
1e60: 0d 0a 09 09 09 09 2a 70 57 72 69 74 65 2b 2b 20  ......*pWrite++ 
1e70: 3d 20 27 b9 27 3b 0d 0a 09 09 09 65 6c 73 65 0d  = '.';.....else.
1e80: 0a 09 09 09 7b 0d 0a 09 09 09 09 44 57 4f 52 44  ....{......DWORD
1e90: 20 73 3b 0d 0a 09 09 09 09 69 66 28 75 77 31 32   s;......if(uw12
1ea0: 35 31 2e 4c 6f 6f 6b 75 70 28 28 76 6f 69 64 2a  51.Lookup((void*
1eb0: 29 75 73 2c 20 28 76 6f 69 64 2a 26 29 73 29 29  )us, (void*&)s))
1ec0: 0d 0a 09 09 09 09 09 2a 70 57 72 69 74 65 2b 2b  .......*pWrite++
1ed0: 20 3d 20 28 63 68 61 72 29 73 3b 0d 0a 09 09 09   = (char)s;.....
1ee0: 09 65 6c 73 65 0d 0a 09 09 09 09 09 2a 70 57 72  .else.......*pWr
1ef0: 69 74 65 2b 2b 20 3d 20 27 3f 27 3b 0d 0a 09 09  ite++ = '?';....
1f00: 09 7d 0d 0a 09 09 7d 0d 0a 09 7d 0d 0a 09 72 65  .}....}...}...re
1f10: 73 2e 47 65 74 42 75 66 66 65 72 53 65 74 4c 65  s.GetBufferSetLe
1f20: 6e 67 74 68 28 70 57 72 69 74 65 20 2d 20 70 53  ngth(pWrite - pS
1f30: 74 61 72 74 29 3b 0d 0a 09 72 65 74 75 72 6e 20  tart);...return 
1f40: 72 65 73 3b 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 20  res;..}....void 
1f50: 75 38 74 65 78 74 3a 3a 66 72 6f 6d 55 74 66 38  u8text::fromUtf8
1f60: 28 4c 50 43 53 54 52 20 73 74 72 53 72 63 2c 20  (LPCSTR strSrc, 
1f70: 43 53 74 72 69 6e 67 26 20 72 65 73 29 0d 0a 7b  CString& res)..{
1f80: 0d 0a 09 69 66 28 21 73 74 72 53 72 63 29 0d 0a  ...if(!strSrc)..
1f90: 09 7b 0d 0a 09 09 72 65 73 2e 45 6d 70 74 79 28  .{....res.Empty(
1fa0: 29 3b 0d 0a 09 09 72 65 74 75 72 6e 3b 0d 0a 09  );....return;...
1fb0: 7d 0d 0a 09 69 6e 74 20 73 6c 65 6e 20 3d 20 73  }...int slen = s
1fc0: 74 72 6c 65 6e 28 73 74 72 53 72 63 29 3b 0d 0a  trlen(strSrc);..
1fd0: 09 63 68 61 72 20 2a 70 57 72 69 74 65 20 3d 20  .char *pWrite = 
1fe0: 72 65 73 2e 47 65 74 42 75 66 66 65 72 53 65 74  res.GetBufferSet
1ff0: 4c 65 6e 67 74 68 28 73 6c 65 6e 29 2c 20 2a 70  Length(slen), *p
2000: 53 74 61 72 74 20 3d 20 70 57 72 69 74 65 3b 0d  Start = pWrite;.
2010: 0a 09 63 6f 6e 73 74 20 75 6e 73 69 67 6e 65 64  ..const unsigned
2020: 20 63 68 61 72 20 2a 70 74 72 20 3d 20 28 63 6f   char *ptr = (co
2030: 6e 73 74 20 75 6e 73 69 67 6e 65 64 20 63 68 61  nst unsigned cha
2040: 72 2a 29 73 74 72 53 72 63 3b 0d 0a 09 77 68 69  r*)strSrc;...whi
2050: 6c 65 28 2a 70 74 72 29 0d 0a 09 7b 0d 0a 09 09  le(*ptr)...{....
2060: 44 57 4f 52 44 20 75 73 20 3d 20 73 74 61 74 69  DWORD us = stati
2070: 63 5f 63 61 73 74 3c 44 57 4f 52 44 3e 28 2a 70  c_cast<DWORD>(*p
2080: 74 72 2b 2b 29 3b 0d 0a 09 09 69 66 28 75 73 20  tr++);....if(us 
2090: 3c 20 30 78 38 30 29 0d 0a 09 09 09 2a 70 57 72  < 0x80).....*pWr
20a0: 69 74 65 2b 2b 20 3d 20 28 63 68 61 72 29 20 75  ite++ = (char) u
20b0: 73 3b 0d 0a 09 09 65 6c 73 65 0d 0a 09 09 7b 0d  s;....else....{.
20c0: 0a 09 09 09 75 73 20 3d 20 73 71 6c 69 74 65 33  ....us = sqlite3
20d0: 55 74 66 54 72 61 6e 73 31 5b 75 73 20 2d 20 30  UtfTrans1[us - 0
20e0: 78 43 30 5d 3b 0d 0a 09 09 09 77 68 69 6c 65 28  xC0];.....while(
20f0: 28 2a 70 74 72 20 26 20 30 78 43 30 29 20 3d 3d  (*ptr & 0xC0) ==
2100: 20 30 78 38 30 29 0d 0a 09 09 09 09 75 73 20 3d   0x80)......us =
2110: 20 28 75 73 20 3c 3c 20 36 29 20 2b 20 28 30 78   (us << 6) + (0x
2120: 33 46 20 26 20 2a 28 70 74 72 2b 2b 29 29 3b 0d  3F & *(ptr++));.
2130: 0a 09 09 09 0d 0a 09 09 09 69 66 28 75 73 20 3e  .........if(us >
2140: 3d 20 30 78 30 30 30 30 30 34 31 30 20 26 26 20  = 0x00000410 && 
2150: 75 73 20 3c 3d 20 30 78 30 30 30 30 30 34 34 46  us <= 0x0000044F
2160: 29 09 2f 2f 20 c0 2d ff 0d 0a 09 09 09 09 2a 70  ).// .-.......*p
2170: 57 72 69 74 65 2b 2b 20 3d 20 75 73 20 2d 20 38  Write++ = us - 8
2180: 34 38 3b 0d 0a 09 09 09 65 6c 73 65 20 69 66 28  48;.....else if(
2190: 75 73 20 3d 3d 20 30 78 30 30 30 30 30 34 30 31  us == 0x00000401
21a0: 29 0d 0a 09 09 09 09 2a 70 57 72 69 74 65 2b 2b  )......*pWrite++
21b0: 20 3d 20 27 a8 27 3b 0d 0a 09 09 09 65 6c 73 65   = '.';.....else
21c0: 20 69 66 28 75 73 20 3d 3d 20 30 78 30 30 30 30   if(us == 0x0000
21d0: 30 34 35 31 29 0d 0a 09 09 09 09 2a 70 57 72 69  0451)......*pWri
21e0: 74 65 2b 2b 20 3d 20 27 b8 27 3b 0d 0a 09 09 09  te++ = '.';.....
21f0: 65 6c 73 65 20 69 66 28 75 73 20 3d 3d 20 30 78  else if(us == 0x
2200: 30 30 30 30 32 31 31 36 29 0d 0a 09 09 09 09 2a  00002116)......*
2210: 70 57 72 69 74 65 2b 2b 20 3d 20 27 b9 27 3b 0d  pWrite++ = '.';.
2220: 0a 09 09 09 65 6c 73 65 0d 0a 09 09 09 7b 0d 0a  ....else.....{..
2230: 09 09 09 09 44 57 4f 52 44 20 73 3b 0d 0a 09 09  ....DWORD s;....
2240: 09 09 69 66 28 75 77 31 32 35 31 2e 4c 6f 6f 6b  ..if(uw1251.Look
2250: 75 70 28 28 76 6f 69 64 2a 29 75 73 2c 20 28 76  up((void*)us, (v
2260: 6f 69 64 2a 26 29 73 29 29 0d 0a 09 09 09 09 09  oid*&)s)).......
2270: 2a 70 57 72 69 74 65 2b 2b 20 3d 20 28 63 68 61  *pWrite++ = (cha
2280: 72 29 73 3b 0d 0a 09 09 09 09 65 6c 73 65 0d 0a  r)s;......else..
2290: 09 09 09 09 09 2a 70 57 72 69 74 65 2b 2b 20 3d  .....*pWrite++ =
22a0: 20 27 3f 27 3b 0d 0a 09 09 09 7d 0d 0a 09 09 7d   '?';.....}....}
22b0: 0d 0a 09 7d 0d 0a 09 72 65 73 2e 47 65 74 42 75  ...}...res.GetBu
22c0: 66 66 65 72 53 65 74 4c 65 6e 67 74 68 28 70 57  fferSetLength(pW
22d0: 72 69 74 65 20 2d 20 70 53 74 61 72 74 29 3b 0d  rite - pStart);.
22e0: 0a 7d 0d 0a 0d 0a 69 6e 6c 69 6e 65 20 44 57 4f  .}....inline DWO
22f0: 52 44 20 6e 6f 43 61 73 65 57 65 69 67 68 74 28  RD noCaseWeight(
2300: 63 6f 6e 73 74 20 75 6e 73 69 67 6e 65 64 20 63  const unsigned c
2310: 68 61 72 2a 26 20 70 74 72 2c 20 69 6e 74 26 20  har*& ptr, int& 
2320: 6c 65 6e 2c 20 43 4d 61 70 50 74 72 54 6f 50 74  len, CMapPtrToPt
2330: 72 26 20 75 77 31 32 35 31 29 0d 0a 7b 0d 0a 09  r& uw1251)..{...
2340: 69 66 28 21 6c 65 6e 29 0d 0a 09 09 72 65 74 75  if(!len)....retu
2350: 72 6e 20 30 3b 0d 0a 09 44 57 4f 52 44 20 75 73  rn 0;...DWORD us
2360: 20 3d 20 73 74 61 74 69 63 5f 63 61 73 74 3c 44   = static_cast<D
2370: 57 4f 52 44 3e 28 2a 70 74 72 2b 2b 29 3b 0d 0a  WORD>(*ptr++);..
2380: 09 6c 65 6e 2d 2d 3b 0d 0a 09 69 66 28 75 73 20  .len--;...if(us 
2390: 3c 3d 20 30 78 38 30 29 0d 0a 09 09 72 65 74 75  <= 0x80)....retu
23a0: 72 6e 20 6e 6f 43 61 73 65 43 6f 6d 70 61 72 65  rn noCaseCompare
23b0: 5b 75 73 5d 3b 0d 0a 09 75 73 20 3d 20 73 71 6c  [us];...us = sql
23c0: 69 74 65 33 55 74 66 54 72 61 6e 73 31 5b 75 73  ite3UtfTrans1[us
23d0: 20 2d 20 30 78 43 30 5d 3b 0d 0a 09 77 68 69 6c   - 0xC0];...whil
23e0: 65 28 28 2a 70 74 72 20 26 20 30 78 43 30 29 20  e((*ptr & 0xC0) 
23f0: 3d 3d 20 30 78 38 30 29 0d 0a 09 7b 0d 0a 09 09  == 0x80)...{....
2400: 75 73 20 3d 20 28 75 73 20 3c 3c 20 36 29 20 2b  us = (us << 6) +
2410: 20 28 30 78 33 46 20 26 20 2a 28 70 74 72 2b 2b   (0x3F & *(ptr++
2420: 29 29 3b 0d 0a 09 09 6c 65 6e 2d 2d 3b 0d 0a 09  ));....len--;...
2430: 7d 0d 0a 09 0d 0a 09 69 66 28 75 73 20 3e 3d 20  }......if(us >= 
2440: 31 30 34 30 20 26 26 20 75 73 20 3c 3d 20 31 31  1040 && us <= 11
2450: 30 33 29 09 2f 2f 20 c0 2d ff 0d 0a 09 09 72 65  03).// .-.....re
2460: 74 75 72 6e 20 6e 6f 43 61 73 65 43 6f 6d 70 61  turn noCaseCompa
2470: 72 65 5b 75 73 20 2d 20 28 31 30 34 30 20 2d 20  re[us - (1040 - 
2480: 42 59 54 45 28 27 c0 27 29 29 5d 3b 0d 0a 09 65  BYTE('.'))];...e
2490: 6c 73 65 20 69 66 28 75 73 20 3d 3d 20 31 30 32  lse if(us == 102
24a0: 35 20 7c 7c 20 75 73 20 3d 3d 20 31 31 30 35 29  5 || us == 1105)
24b0: 0d 0a 09 09 72 65 74 75 72 6e 20 6e 6f 43 61 73  ....return noCas
24c0: 65 43 6f 6d 70 61 72 65 5b 42 59 54 45 28 27 a8  eCompare[BYTE('.
24d0: 27 29 5d 3b 0d 0a 09 65 6c 73 65 0d 0a 09 7b 0d  ')];...else...{.
24e0: 0a 09 09 44 57 4f 52 44 20 73 3b 0d 0a 09 09 69  ...DWORD s;....i
24f0: 66 28 75 77 31 32 35 31 2e 4c 6f 6f 6b 75 70 28  f(uw1251.Lookup(
2500: 28 76 6f 69 64 2a 29 75 73 2c 20 28 76 6f 69 64  (void*)us, (void
2510: 2a 26 29 73 29 29 0d 0a 09 09 09 72 65 74 75 72  *&)s)).....retur
2520: 6e 20 6e 6f 43 61 73 65 43 6f 6d 70 61 72 65 5b  n noCaseCompare[
2530: 73 5d 3b 0d 0a 09 09 72 65 74 75 72 6e 20 75 73  s];....return us
2540: 3b 0d 0a 09 7d 0d 0a 7d 0d 0a 0d 0a 69 6e 74 20  ;...}..}....int 
2550: 75 38 74 65 78 74 3a 3a 5f 31 43 63 6f 6c 6c 61  u8text::_1Ccolla
2560: 74 65 28 76 6f 69 64 2a 2c 20 69 6e 74 20 6c 31  te(void*, int l1
2570: 2c 20 63 6f 6e 73 74 20 76 6f 69 64 2a 20 73 74  , const void* st
2580: 72 31 2c 20 69 6e 74 20 6c 32 2c 20 63 6f 6e 73  r1, int l2, cons
2590: 74 20 76 6f 69 64 2a 20 73 74 72 32 29 0d 0a 7b  t void* str2)..{
25a0: 0d 0a 09 63 6f 6e 73 74 20 75 6e 73 69 67 6e 65  ...const unsigne
25b0: 64 20 63 68 61 72 2a 20 70 53 74 72 31 20 3d 20  d char* pStr1 = 
25c0: 28 63 6f 6e 73 74 20 75 6e 73 69 67 6e 65 64 20  (const unsigned 
25d0: 63 68 61 72 2a 29 73 74 72 31 3b 0d 0a 09 63 6f  char*)str1;...co
25e0: 6e 73 74 20 75 6e 73 69 67 6e 65 64 20 63 68 61  nst unsigned cha
25f0: 72 2a 20 70 53 74 72 32 20 3d 20 28 63 6f 6e 73  r* pStr2 = (cons
2600: 74 20 75 6e 73 69 67 6e 65 64 20 63 68 61 72 2a  t unsigned char*
2610: 29 73 74 72 32 3b 0d 0a 09 66 6f 72 28 3b 3b 29  )str2;...for(;;)
2620: 0d 0a 09 7b 0d 0a 09 09 69 6e 74 20 73 31 20 3d  ...{....int s1 =
2630: 20 6e 6f 43 61 73 65 57 65 69 67 68 74 28 70 53   noCaseWeight(pS
2640: 74 72 31 2c 20 6c 31 2c 20 75 77 31 32 35 31 29  tr1, l1, uw1251)
2650: 3b 0d 0a 09 09 69 6e 74 20 73 32 20 3d 20 6e 6f  ;....int s2 = no
2660: 43 61 73 65 57 65 69 67 68 74 28 70 53 74 72 32  CaseWeight(pStr2
2670: 2c 20 6c 32 2c 20 75 77 31 32 35 31 29 3b 0d 0a  , l2, uw1251);..
2680: 09 09 69 66 28 30 20 3d 3d 20 73 31 29 0d 0a 09  ..if(0 == s1)...
2690: 09 7b 0d 0a 09 09 09 69 66 28 30 20 21 3d 20 73  .{.....if(0 != s
26a0: 32 29 0d 0a 09 09 09 7b 0d 0a 09 09 09 09 70 53  2).....{......pS
26b0: 74 72 32 2d 2d 3b 0d 0a 09 09 09 09 66 6f 72 28  tr2--;......for(
26c0: 3b 3b 29 0d 0a 09 09 09 09 7b 0d 0a 09 09 09 09  ;;)......{......
26d0: 09 73 32 20 3d 20 73 74 61 74 69 63 5f 63 61 73  .s2 = static_cas
26e0: 74 3c 44 57 4f 52 44 3e 28 2a 70 53 74 72 32 2b  t<DWORD>(*pStr2+
26f0: 2b 29 3b 0d 0a 09 09 09 09 09 69 66 28 30 20 3d  +);.......if(0 =
2700: 3d 20 73 32 29 0d 0a 09 09 09 09 09 09 72 65 74  = s2)........ret
2710: 75 72 6e 20 30 3b 0d 0a 09 09 09 09 09 69 66 28  urn 0;.......if(
2720: 27 20 27 20 21 3d 20 73 32 29 0d 0a 09 09 09 09  ' ' != s2)......
2730: 09 09 72 65 74 75 72 6e 20 31 3b 0d 0a 09 09 09  ..return 1;.....
2740: 09 7d 0d 0a 09 09 09 7d 0d 0a 09 09 09 72 65 74  .}.....}.....ret
2750: 75 72 6e 20 30 3b 0d 0a 09 09 7d 0d 0a 09 09 65  urn 0;....}....e
2760: 6c 73 65 20 69 66 28 30 20 3d 3d 20 73 32 29 09  lse if(0 == s2).
2770: 2f 2f 20 c2 f2 ee f0 e0 ff 20 f1 f2 f0 ee ea e0  // ...... ......
2780: 20 ea ee ed f7 e8 eb e0 f1 fc 2e 20 cd e0 e4 ee   .......... ....
2790: 20 ef f0 ee e2 e5 f0 e8 f2 fc 2c 20 e0 20 ed e5   ........., . ..
27a0: 20 ea ee ed f7 e0 e5 f2 f1 ff 20 eb e8 20 ef e5   ......... .. ..
27b0: f0 e2 e0 ff 20 f1 f2 f0 ee ea e0 20 ef f0 ee e1  .... ...... ....
27c0: e5 eb e0 ec e8 0d 0a 09 09 7b 0d 0a 09 09 09 70  .........{.....p
27d0: 53 74 72 31 2d 2d 3b 0d 0a 09 09 09 66 6f 72 28  Str1--;.....for(
27e0: 3b 3b 29 0d 0a 09 09 09 7b 0d 0a 09 09 09 09 73  ;;).....{......s
27f0: 31 20 3d 20 73 74 61 74 69 63 5f 63 61 73 74 3c  1 = static_cast<
2800: 44 57 4f 52 44 3e 28 2a 70 53 74 72 31 2b 2b 29  DWORD>(*pStr1++)
2810: 3b 0d 0a 09 09 09 09 69 66 28 30 20 3d 3d 20 73  ;......if(0 == s
2820: 31 29 0d 0a 09 09 09 09 09 72 65 74 75 72 6e 20  1).......return 
2830: 30 3b 0d 0a 09 09 09 09 69 66 28 27 20 27 20 21  0;......if(' ' !
2840: 3d 20 73 31 29 0d 0a 09 09 09 09 09 72 65 74 75  = s1).......retu
2850: 72 6e 20 31 3b 0d 0a 09 09 09 7d 0d 0a 09 09 7d  rn 1;.....}....}
2860: 0d 0a 09 09 65 6c 73 65 20 69 66 28 73 31 20 21  ....else if(s1 !
2870: 3d 20 73 32 29 0d 0a 09 09 09 72 65 74 75 72 6e  = s2).....return
2880: 20 73 31 20 2d 20 73 32 3b 0d 0a 09 7d 0d 0a 7d   s1 - s2;...}..}
2890: 0d 0a 0d 0a 69 6e 74 20 75 38 74 65 78 74 3a 3a  ....int u8text::
28a0: 63 6f 6d 70 61 72 65 52 74 72 69 6d 4e 6f 43 61  compareRtrimNoCa
28b0: 73 65 28 4c 50 43 53 54 52 20 73 74 72 31 2c 20  se(LPCSTR str1, 
28c0: 4c 50 43 53 54 52 20 73 74 72 32 29 0d 0a 7b 0d  LPCSTR str2)..{.
28d0: 0a 09 66 6f 72 28 3b 3b 29 0d 0a 09 7b 0d 0a 09  ..for(;;)...{...
28e0: 09 44 57 4f 52 44 20 73 31 20 3d 20 6e 6f 43 61  .DWORD s1 = noCa
28f0: 73 65 43 6f 6d 70 61 72 65 5b 73 74 61 74 69 63  seCompare[static
2900: 5f 63 61 73 74 3c 44 57 4f 52 44 3e 28 73 74 61  _cast<DWORD>(sta
2910: 74 69 63 5f 63 61 73 74 3c 42 59 54 45 3e 28 2a  tic_cast<BYTE>(*
2920: 73 74 72 31 29 29 5d 3b 0d 0a 09 09 44 57 4f 52  str1))];....DWOR
2930: 44 20 73 32 20 3d 20 6e 6f 43 61 73 65 43 6f 6d  D s2 = noCaseCom
2940: 70 61 72 65 5b 73 74 61 74 69 63 5f 63 61 73 74  pare[static_cast
2950: 3c 44 57 4f 52 44 3e 28 73 74 61 74 69 63 5f 63  <DWORD>(static_c
2960: 61 73 74 3c 42 59 54 45 3e 28 2a 73 74 72 32 29  ast<BYTE>(*str2)
2970: 29 5d 3b 0d 0a 09 09 69 66 28 30 20 3d 3d 20 73  )];....if(0 == s
2980: 31 29 09 2f 2f 20 cf e5 f0 e2 e0 ff 20 f1 f2 f0  1).// ...... ...
2990: ee ea e0 20 ea ee ed f7 e8 eb e0 f1 fc 2e 20 cd  ... .......... .
29a0: e0 e4 ee 20 ef f0 ee e2 e5 f0 e8 f2 fc 2c 20 e0  ... ........., .
29b0: 20 ed e5 20 ea ee ed f7 e0 e5 f2 f1 ff 20 eb e8   .. ......... ..
29c0: 20 e2 f2 ee f0 e0 ff 20 f1 f2 f0 ee ea e0 20 ef   ...... ...... .
29d0: f0 ee e1 e5 eb e0 ec e8 0d 0a 09 09 7b 0d 0a 09  ............{...
29e0: 09 09 66 6f 72 28 3b 3b 29 0d 0a 09 09 09 7b 0d  ..for(;;).....{.
29f0: 0a 09 09 09 09 73 32 20 3d 20 73 74 61 74 69 63  .....s2 = static
2a00: 5f 63 61 73 74 3c 44 57 4f 52 44 3e 28 73 74 61  _cast<DWORD>(sta
2a10: 74 69 63 5f 63 61 73 74 3c 42 59 54 45 3e 28 2a  tic_cast<BYTE>(*
2a20: 73 74 72 32 2b 2b 29 29 3b 0d 0a 09 09 09 09 69  str2++));......i
2a30: 66 28 30 20 3d 3d 20 73 32 29 0d 0a 09 09 09 09  f(0 == s2)......
2a40: 09 72 65 74 75 72 6e 20 30 3b 0d 0a 09 09 09 09  .return 0;......
2a50: 69 66 28 27 20 27 20 21 3d 20 73 32 29 0d 0a 09  if(' ' != s2)...
2a60: 09 09 09 09 72 65 74 75 72 6e 20 2d 31 3b 0d 0a  ....return -1;..
2a70: 09 09 09 7d 0d 0a 09 09 7d 0d 0a 09 09 65 6c 73  ...}....}....els
2a80: 65 20 69 66 28 30 20 3d 3d 20 73 32 29 09 2f 2f  e if(0 == s2).//
2a90: 20 c2 f2 ee f0 e0 ff 20 f1 f2 f0 ee ea e0 20 ea   ...... ...... .
2aa0: ee ed f7 e8 eb e0 f1 fc 2e 20 cd e0 e4 ee 20 ef  ......... .... .
2ab0: f0 ee e2 e5 f0 e8 f2 fc 2c 20 e0 20 ed e5 20 ea  ........, . .. .
2ac0: ee ed f7 e0 e5 f2 f1 ff 20 eb e8 20 ef e5 f0 e2  ........ .. ....
2ad0: e0 ff 20 f1 f2 f0 ee ea e0 20 ef f0 ee e1 e5 eb  .. ...... ......
2ae0: e0 ec e8 0d 0a 09 09 7b 0d 0a 09 09 09 66 6f 72  .......{.....for
2af0: 28 3b 3b 29 0d 0a 09 09 09 7b 0d 0a 09 09 09 09  (;;).....{......
2b00: 73 31 20 3d 20 73 74 61 74 69 63 5f 63 61 73 74  s1 = static_cast
2b10: 3c 44 57 4f 52 44 3e 28 73 74 61 74 69 63 5f 63  <DWORD>(static_c
2b20: 61 73 74 3c 42 59 54 45 3e 28 2a 73 74 72 31 2b  ast<BYTE>(*str1+
2b30: 2b 29 29 3b 0d 0a 09 09 09 09 69 66 28 30 20 3d  +));......if(0 =
2b40: 3d 20 73 31 29 0d 0a 09 09 09 09 09 72 65 74 75  = s1).......retu
2b50: 72 6e 20 30 3b 0d 0a 09 09 09 09 69 66 28 27 20  rn 0;......if(' 
2b60: 27 20 21 3d 20 73 31 29 0d 0a 09 09 09 09 09 72  ' != s1).......r
2b70: 65 74 75 72 6e 20 31 3b 09 2f 2f 20 cf e5 f0 e2  eturn 1;.// ....
2b80: e0 ff 20 f1 f2 f0 ee ea e0 20 e1 ee eb fc f8 e5  .. ...... ......
2b90: 0d 0a 09 09 09 7d 0d 0a 09 09 7d 0d 0a 09 09 65  .....}....}....e
2ba0: 6c 73 65 20 69 66 28 73 31 20 21 3d 20 73 32 29  lse if(s1 != s2)
2bb0: 0d 0a 09 09 09 72 65 74 75 72 6e 20 73 31 20 2d  .....return s1 -
2bc0: 20 73 32 3b 0d 0a 09 09 73 74 72 31 2b 2b 3b 0d   s2;....str1++;.
2bd0: 0a 09 09 73 74 72 32 2b 2b 3b 0d 0a 09 7d 0d 0a  ...str2++;...}..
2be0: 7d 0d 0a 0d 0a 2f 2f 20 d1 f0 e0 e2 ed e5 ed e8  }....// ........
2bf0: e5 20 e8 e4 e5 f2 20 e2 20 f1 ee ee f2 e2 e5 f2  . .... . .......
2c00: f1 f2 e2 e8 e8 20 f1 20 ef ee f0 ff e4 ea ee ec  ..... . ........
2c10: 20 f1 ee f0 f2 e8 f0 ee e2 ea e8 20 f1 f2 f0 ee   .......... ....
2c20: ea 20 e2 20 f2 e0 e1 eb e8 f6 e0 f5 20 31 d1 21  . . ........ 1.!
2c30: 21 21 0d 0a 69 6e 74 20 75 38 74 65 78 74 3a 3a  !!..int u8text::
2c40: 63 6f 6d 70 61 72 65 52 74 72 69 6d 28 4c 50 43  compareRtrim(LPC
2c50: 53 54 52 20 73 74 72 31 2c 20 4c 50 43 53 54 52  STR str1, LPCSTR
2c60: 20 73 74 72 32 29 0d 0a 7b 0d 0a 09 42 59 54 45   str2)..{...BYTE
2c70: 2a 20 5f 31 43 5f 64 62 6f 72 64 65 72 20 3d 20  * _1C_dborder = 
2c80: 43 44 42 45 6e 67 44 42 37 3a 3a 47 65 74 53 65  CDBEngDB7::GetSe
2c90: 6c 65 63 74 65 64 43 6f 64 65 50 61 67 65 28 29  lectedCodePage()
2ca0: 2d 3e 6f 72 64 65 72 57 65 69 67 68 74 46 6f 72  ->orderWeightFor
2cb0: 43 68 61 72 73 3b 0d 0a 09 66 6f 72 28 3b 3b 29  Chars;...for(;;)
2cc0: 0d 0a 09 7b 0d 0a 09 09 44 57 4f 52 44 20 73 31  ...{....DWORD s1
2cd0: 20 3d 20 5f 31 43 5f 64 62 6f 72 64 65 72 5b 73   = _1C_dborder[s
2ce0: 74 61 74 69 63 5f 63 61 73 74 3c 44 57 4f 52 44  tatic_cast<DWORD
2cf0: 3e 28 73 74 61 74 69 63 5f 63 61 73 74 3c 42 59  >(static_cast<BY
2d00: 54 45 3e 28 2a 73 74 72 31 29 29 5d 3b 0d 0a 09  TE>(*str1))];...
2d10: 09 44 57 4f 52 44 20 73 32 20 3d 20 5f 31 43 5f  .DWORD s2 = _1C_
2d20: 64 62 6f 72 64 65 72 5b 73 74 61 74 69 63 5f 63  dborder[static_c
2d30: 61 73 74 3c 44 57 4f 52 44 3e 28 73 74 61 74 69  ast<DWORD>(stati
2d40: 63 5f 63 61 73 74 3c 42 59 54 45 3e 28 2a 73 74  c_cast<BYTE>(*st
2d50: 72 32 29 29 5d 3b 0d 0a 09 09 69 66 28 30 20 3d  r2))];....if(0 =
2d60: 3d 20 73 31 29 09 2f 2f 20 cf e5 f0 e2 e0 ff 20  = s1).// ...... 
2d70: f1 f2 f0 ee ea e0 20 ea ee ed f7 e8 eb e0 f1 fc  ...... .........
2d80: 2e 20 cd e0 e4 ee 20 ef f0 ee e2 e5 f0 e8 f2 fc  . .... .........
2d90: 2c 20 e0 20 ed e5 20 ea ee ed f7 e0 e5 f2 f1 ff  , . .. .........
2da0: 20 eb e8 20 e2 f2 ee f0 e0 ff 20 f1 f2 f0 ee ea   .. ...... .....
2db0: e0 20 ef f0 ee e1 e5 eb e0 ec e8 0d 0a 09 09 7b  . .............{
2dc0: 0d 0a 09 09 09 66 6f 72 28 3b 3b 29 0d 0a 09 09  .....for(;;)....
2dd0: 09 7b 0d 0a 09 09 09 09 73 32 20 3d 20 73 74 61  .{......s2 = sta
2de0: 74 69 63 5f 63 61 73 74 3c 44 57 4f 52 44 3e 28  tic_cast<DWORD>(
2df0: 73 74 61 74 69 63 5f 63 61 73 74 3c 42 59 54 45  static_cast<BYTE
2e00: 3e 28 2a 73 74 72 32 2b 2b 29 29 3b 0d 0a 09 09  >(*str2++));....
2e10: 09 09 69 66 28 30 20 3d 3d 20 73 32 29 0d 0a 09  ..if(0 == s2)...
2e20: 09 09 09 09 72 65 74 75 72 6e 20 30 3b 0d 0a 09  ....return 0;...
2e30: 09 09 09 69 66 28 27 20 27 20 21 3d 20 73 32 29  ...if(' ' != s2)
2e40: 0d 0a 09 09 09 09 09 72 65 74 75 72 6e 20 2d 31  .......return -1
2e50: 3b 09 2f 2f 20 cf e5 f0 e2 e0 ff 20 f1 f2 f0 ee  ;.// ...... ....
2e60: ea e0 20 ec e5 ed fc f8 e5 0d 0a 09 09 09 7d 0d  .. ...........}.
2e70: 0a 09 09 7d 0d 0a 09 09 65 6c 73 65 20 69 66 28  ...}....else if(
2e80: 30 20 3d 3d 20 73 32 29 09 2f 2f 20 c2 f2 ee f0  0 == s2).// ....
2e90: e0 ff 20 f1 f2 f0 ee ea e0 20 ea ee ed f7 e8 eb  .. ...... ......
2ea0: e0 f1 fc 2e 20 cd e0 e4 ee 20 ef f0 ee e2 e5 f0  .... .... ......
2eb0: e8 f2 fc 2c 20 e0 20 ed e5 20 ea ee ed f7 e0 e5  ..., . .. ......
2ec0: f2 f1 ff 20 eb e8 20 ef e5 f0 e2 e0 ff 20 f1 f2  ... .. ...... ..
2ed0: f0 ee ea e0 20 ef f0 ee e1 e5 eb e0 ec e8 0d 0a  .... ...........
2ee0: 09 09 7b 0d 0a 09 09 09 66 6f 72 28 3b 3b 29 0d  ..{.....for(;;).
2ef0: 0a 09 09 09 7b 0d 0a 09 09 09 09 73 31 20 3d 20  ....{......s1 = 
2f00: 73 74 61 74 69 63 5f 63 61 73 74 3c 44 57 4f 52  static_cast<DWOR
2f10: 44 3e 28 73 74 61 74 69 63 5f 63 61 73 74 3c 42  D>(static_cast<B
2f20: 59 54 45 3e 28 2a 73 74 72 31 2b 2b 29 29 3b 0d  YTE>(*str1++));.
2f30: 0a 09 09 09 09 69 66 28 30 20 3d 3d 20 73 31 29  .....if(0 == s1)
2f40: 0d 0a 09 09 09 09 09 72 65 74 75 72 6e 20 30 3b  .......return 0;
2f50: 0d 0a 09 09 09 09 69 66 28 27 20 27 20 21 3d 20  ......if(' ' != 
2f60: 73 31 29 0d 0a 09 09 09 09 09 72 65 74 75 72 6e  s1).......return
2f70: 20 31 3b 09 2f 2f 20 cf e5 f0 e2 e0 ff 20 f1 f2   1;.// ...... ..
2f80: f0 ee ea e0 20 e1 ee eb fc f8 e5 0d 0a 09 09 09  .... ...........
2f90: 7d 0d 0a 09 09 7d 0d 0a 09 09 65 6c 73 65 20 69  }....}....else i
2fa0: 66 28 73 31 20 21 3d 20 73 32 29 0d 0a 09 09 09  f(s1 != s2).....
2fb0: 72 65 74 75 72 6e 20 73 31 20 2d 20 73 32 3b 0d  return s1 - s2;.
2fc0: 0a 09 09 73 74 72 31 2b 2b 3b 0d 0a 09 09 73 74  ...str1++;....st
2fd0: 72 32 2b 2b 3b 0d 0a 09 7d 0d 0a 7d 0d 0a 0d 0a  r2++;...}..}....
2fe0: 69 6e 74 20 75 38 74 65 78 74 3a 3a 63 6f 6d 70  int u8text::comp
2ff0: 61 72 65 4e 6f 43 61 73 65 4c 65 6e 28 4c 50 43  areNoCaseLen(LPC
3000: 53 54 52 20 73 74 72 31 2c 20 4c 50 43 53 54 52  STR str1, LPCSTR
3010: 20 73 74 72 32 2c 20 44 57 4f 52 44 20 6c 65 6e   str2, DWORD len
3020: 29 0d 0a 7b 0d 0a 09 77 68 69 6c 65 28 6c 65 6e  )..{...while(len
3030: 29 0d 0a 09 7b 0d 0a 09 09 69 6e 74 20 73 31 20  )...{....int s1 
3040: 3d 20 6e 6f 43 61 73 65 43 6f 6d 70 61 72 65 5b  = noCaseCompare[
3050: 73 74 61 74 69 63 5f 63 61 73 74 3c 44 57 4f 52  static_cast<DWOR
3060: 44 3e 28 73 74 61 74 69 63 5f 63 61 73 74 3c 42  D>(static_cast<B
3070: 59 54 45 3e 28 2a 73 74 72 31 29 29 5d 3b 0d 0a  YTE>(*str1))];..
3080: 09 09 69 6e 74 20 73 32 20 3d 20 6e 6f 43 61 73  ..int s2 = noCas
3090: 65 43 6f 6d 70 61 72 65 5b 73 74 61 74 69 63 5f  eCompare[static_
30a0: 63 61 73 74 3c 44 57 4f 52 44 3e 28 73 74 61 74  cast<DWORD>(stat
30b0: 69 63 5f 63 61 73 74 3c 42 59 54 45 3e 28 2a 73  ic_cast<BYTE>(*s
30c0: 74 72 32 29 29 5d 3b 0d 0a 09 09 69 6e 74 20 64  tr2))];....int d
30d0: 69 66 20 3d 20 73 31 20 2d 20 73 32 3b 0d 0a 09  if = s1 - s2;...
30e0: 09 69 66 28 64 69 66 29 0d 0a 09 09 09 72 65 74  .if(dif).....ret
30f0: 75 72 6e 20 64 69 66 3b 0d 0a 09 09 73 74 72 31  urn dif;....str1
3100: 2b 2b 3b 0d 0a 09 09 73 74 72 32 2b 2b 3b 0d 0a  ++;....str2++;..
3110: 09 09 6c 65 6e 2d 2d 3b 0d 0a 09 7d 0d 0a 09 72  ..len--;...}...r
3120: 65 74 75 72 6e 20 30 3b 0d 0a 7d 0d 0a 0d 0a 76  eturn 0;..}....v
3130: 6f 69 64 20 75 38 74 65 78 74 3a 3a 64 62 55 70  oid u8text::dbUp
3140: 70 65 72 28 43 53 74 72 69 6e 67 26 20 73 74 72  per(CString& str
3150: 29 0d 0a 7b 0d 0a 09 42 59 54 45 2a 20 75 70 70  )..{...BYTE* upp
3160: 65 72 20 3d 20 43 44 42 45 6e 67 44 42 37 3a 3a  er = CDBEngDB7::
3170: 47 65 74 53 65 6c 65 63 74 65 64 43 6f 64 65 50  GetSelectedCodeP
3180: 61 67 65 28 29 2d 3e 75 70 70 65 72 53 79 6d 62  age()->upperSymb
3190: 6f 6c 73 3b 0d 0a 09 44 57 4f 52 44 20 6c 65 6e  ols;...DWORD len
31a0: 20 3d 20 73 74 72 2e 47 65 74 4c 65 6e 67 74 68   = str.GetLength
31b0: 28 29 3b 0d 0a 09 42 59 54 45 2a 20 73 79 6d 62  ();...BYTE* symb
31c0: 20 3d 20 28 42 59 54 45 2a 29 73 74 72 2e 47 65   = (BYTE*)str.Ge
31d0: 74 42 75 66 66 65 72 53 65 74 4c 65 6e 67 74 68  tBufferSetLength
31e0: 28 6c 65 6e 29 3b 0d 0a 09 77 68 69 6c 65 28 6c  (len);...while(l
31f0: 65 6e 2d 2d 29 0d 0a 09 7b 0d 0a 09 09 44 57 4f  en--)...{....DWO
3200: 52 44 20 69 64 78 20 3d 20 28 44 57 4f 52 44 29  RD idx = (DWORD)
3210: 2a 73 79 6d 62 3b 0d 0a 09 09 2a 73 79 6d 62 2b  *symb;....*symb+
3220: 2b 20 3d 20 75 70 70 65 72 5b 69 64 78 5d 3b 0d  + = upper[idx];.
3230: 0a 09 7d 0d 0a 7d                                ..}..}