Grammalecte  Hex Artifact Content

Artifact 8f9100bd09b6ea75e7978fcb012bfa2eeca53560957e0fc3055f33b88c8ab61b:


0000: 2f 2f 20 6c 69 73 74 20 6f 66 20 73 69 6d 69 6c  // list of simil
0010: 61 72 20 63 68 61 72 73 0a 2f 2f 20 75 73 65 66  ar chars.// usef
0020: 75 6c 20 66 6f 72 20 73 75 67 67 65 73 74 69 6f  ul for suggestio
0030: 6e 20 6d 65 63 68 61 6e 69 73 6d 0a 0a 24 7b 6d  n mechanism..${m
0040: 61 70 7d 0a 0a 0a 76 61 72 20 63 68 61 72 5f 70  ap}...var char_p
0050: 6c 61 79 65 72 20 3d 20 7b 0a 0a 20 20 20 20 5f  layer = {..    _
0060: 78 54 72 61 6e 73 43 68 61 72 73 46 6f 72 53 70  xTransCharsForSp
0070: 65 6c 6c 69 6e 67 3a 20 6e 65 77 20 4d 61 70 28  elling: new Map(
0080: 5b 0a 20 20 20 20 20 20 20 20 5b 27 c5 bf 27 2c  [.        ['..',
0090: 20 27 73 27 5d 2c 20 20 5b 27 ef ac 83 27 2c 20   's'],  ['...', 
00a0: 27 66 66 69 27 5d 2c 20 20 5b 27 ef ac 84 27 2c  'ffi'],  ['...',
00b0: 20 27 66 66 6c 27 5d 2c 20 20 5b 27 ef ac 80 27   'ffl'],  ['...'
00c0: 2c 20 27 66 66 27 5d 2c 20 20 5b 27 ef ac 85 27  , 'ff'],  ['...'
00d0: 2c 20 27 66 74 27 5d 2c 20 20 5b 27 ef ac 81 27  , 'ft'],  ['...'
00e0: 2c 20 27 66 69 27 5d 2c 20 20 5b 27 ef ac 82 27  , 'fi'],  ['...'
00f0: 2c 20 27 66 6c 27 5d 2c 20 20 5b 27 ef ac 86 27  , 'fl'],  ['...'
0100: 2c 20 27 73 74 27 5d 0a 20 20 20 20 5d 29 2c 0a  , 'st'].    ]),.
0110: 0a 20 20 20 20 73 70 65 6c 6c 69 6e 67 4e 6f 72  .    spellingNor
0120: 6d 61 6c 69 7a 61 74 69 6f 6e 3a 20 66 75 6e 63  malization: func
0130: 74 69 6f 6e 20 28 73 57 6f 72 64 29 20 7b 0a 20  tion (sWord) {. 
0140: 20 20 20 20 20 20 20 6c 65 74 20 73 4e 65 77 57         let sNewW
0150: 6f 72 64 20 3d 20 22 22 3b 0a 20 20 20 20 20 20  ord = "";.      
0160: 20 20 66 6f 72 20 28 6c 65 74 20 63 20 6f 66 20    for (let c of 
0170: 73 57 6f 72 64 29 20 7b 0a 20 20 20 20 20 20 20  sWord) {.       
0180: 20 20 20 20 20 73 4e 65 77 57 6f 72 64 20 2b 3d       sNewWord +=
0190: 20 74 68 69 73 2e 5f 78 54 72 61 6e 73 43 68 61   this._xTransCha
01a0: 72 73 46 6f 72 53 70 65 6c 6c 69 6e 67 2e 67 6c  rsForSpelling.gl
01b0: 5f 67 65 74 28 63 2c 20 63 29 3b 0a 20 20 20 20  _get(c, c);.    
01c0: 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65      }.        re
01d0: 74 75 72 6e 20 73 4e 65 77 57 6f 72 64 2e 6e 6f  turn sNewWord.no
01e0: 72 6d 61 6c 69 7a 65 28 22 4e 46 43 22 29 3b 0a  rmalize("NFC");.
01f0: 20 20 20 20 7d 2c 0a 0a 20 20 20 20 5f 78 54 72      },..    _xTr
0200: 61 6e 73 43 68 61 72 73 46 6f 72 53 69 6d 70 6c  ansCharsForSimpl
0210: 69 66 69 63 61 74 69 6f 6e 3a 20 6e 65 77 20 4d  ification: new M
0220: 61 70 28 5b 0a 20 20 20 20 20 20 20 20 5b 27 c3  ap([.        ['.
0230: a0 27 2c 20 27 61 27 5d 2c 20 20 5b 27 c3 a9 27  .', 'a'],  ['..'
0240: 2c 20 27 65 27 5d 2c 20 20 5b 27 c3 ae 27 2c 20  , 'e'],  ['..', 
0250: 27 69 27 5d 2c 20 20 5b 27 c3 b4 27 2c 20 27 6f  'i'],  ['..', 'o
0260: 27 5d 2c 20 20 5b 27 c3 bb 27 2c 20 27 75 27 5d  '],  ['..', 'u']
0270: 2c 20 20 5b 27 c3 bf 27 2c 20 27 69 27 5d 2c 20  ,  ['..', 'i'], 
0280: 20 5b 27 79 27 2c 20 27 69 27 5d 2c 0a 20 20 20   ['y', 'i'],.   
0290: 20 20 20 20 20 5b 27 c3 a2 27 2c 20 27 61 27 5d       ['..', 'a']
02a0: 2c 20 20 5b 27 c3 a8 27 2c 20 27 65 27 5d 2c 20  ,  ['..', 'e'], 
02b0: 20 5b 27 c3 af 27 2c 20 27 69 27 5d 2c 20 20 5b   ['..', 'i'],  [
02c0: 27 c3 b6 27 2c 20 27 6f 27 5d 2c 20 20 5b 27 c3  '..', 'o'],  ['.
02d0: b9 27 2c 20 27 75 27 5d 2c 20 20 5b 27 c5 b7 27  .', 'u'],  ['..'
02e0: 2c 20 27 69 27 5d 2c 0a 20 20 20 20 20 20 20 20  , 'i'],.        
02f0: 5b 27 c3 a4 27 2c 20 27 61 27 5d 2c 20 20 5b 27  ['..', 'a'],  ['
0300: c3 aa 27 2c 20 27 65 27 5d 2c 20 20 5b 27 c3 ad  ..', 'e'],  ['..
0310: 27 2c 20 27 69 27 5d 2c 20 20 5b 27 c3 b3 27 2c  ', 'i'],  ['..',
0320: 20 27 6f 27 5d 2c 20 20 5b 27 c3 bc 27 2c 20 27   'o'],  ['..', '
0330: 75 27 5d 2c 20 20 5b 27 c3 bd 27 2c 20 27 69 27  u'],  ['..', 'i'
0340: 5d 2c 0a 20 20 20 20 20 20 20 20 5b 27 c3 a1 27  ],.        ['..'
0350: 2c 20 27 61 27 5d 2c 20 20 5b 27 c3 ab 27 2c 20  , 'a'],  ['..', 
0360: 27 65 27 5d 2c 20 20 5b 27 c3 ac 27 2c 20 27 69  'e'],  ['..', 'i
0370: 27 5d 2c 20 20 5b 27 c3 b2 27 2c 20 27 6f 27 5d  '],  ['..', 'o']
0380: 2c 20 20 5b 27 c3 ba 27 2c 20 27 75 27 5d 2c 20  ,  ['..', 'u'], 
0390: 20 5b 27 e1 bb b3 27 2c 20 27 69 27 5d 2c 0a 20   ['...', 'i'],. 
03a0: 20 20 20 20 20 20 20 5b 27 c4 81 27 2c 20 27 61         ['..', 'a
03b0: 27 5d 2c 20 20 5b 27 c4 93 27 2c 20 27 65 27 5d  '],  ['..', 'e']
03c0: 2c 20 20 5b 27 c4 ab 27 2c 20 27 69 27 5d 2c 20  ,  ['..', 'i'], 
03d0: 20 5b 27 c5 8d 27 2c 20 27 6f 27 5d 2c 20 20 5b   ['..', 'o'],  [
03e0: 27 c5 ab 27 2c 20 27 75 27 5d 2c 20 20 5b 27 c8  '..', 'u'],  ['.
03f0: b3 27 2c 20 27 69 27 5d 2c 0a 20 20 20 20 20 20  .', 'i'],.      
0400: 20 20 5b 27 c3 b1 27 2c 20 27 6e 27 5d 2c 20 20    ['..', 'n'],  
0410: 5b 27 6b 27 2c 20 27 71 27 5d 2c 20 20 5b 27 77  ['k', 'q'],  ['w
0420: 27 2c 20 27 76 27 5d 2c 0a 20 20 20 20 20 20 20  ', 'v'],.       
0430: 20 5b 27 c5 93 27 2c 20 27 6f 65 27 5d 2c 20 5b   ['..', 'oe'], [
0440: 27 c3 a6 27 2c 20 27 61 65 27 5d 2c 20 0a 20 20  '..', 'ae'], .  
0450: 20 20 20 20 20 20 5b 27 c5 bf 27 2c 20 27 73 27        ['..', 's'
0460: 5d 2c 20 20 5b 27 ef ac 83 27 2c 20 27 66 66 69  ],  ['...', 'ffi
0470: 27 5d 2c 20 20 5b 27 ef ac 84 27 2c 20 27 66 66  '],  ['...', 'ff
0480: 6c 27 5d 2c 20 20 5b 27 ef ac 80 27 2c 20 27 66  l'],  ['...', 'f
0490: 66 27 5d 2c 20 20 5b 27 ef ac 85 27 2c 20 27 66  f'],  ['...', 'f
04a0: 74 27 5d 2c 20 20 5b 27 ef ac 81 27 2c 20 27 66  t'],  ['...', 'f
04b0: 69 27 5d 2c 20 20 5b 27 ef ac 82 27 2c 20 27 66  i'],  ['...', 'f
04c0: 6c 27 5d 2c 20 20 5b 27 ef ac 86 27 2c 20 27 73  l'],  ['...', 's
04d0: 74 27 5d 0a 20 20 20 20 5d 29 2c 0a 0a 20 20 20  t'].    ]),..   
04e0: 20 73 69 6d 70 6c 69 66 79 57 6f 72 64 3a 20 66   simplifyWord: f
04f0: 75 6e 63 74 69 6f 6e 20 28 73 57 6f 72 64 29 20  unction (sWord) 
0500: 7b 0a 20 20 20 20 20 20 20 20 2f 2f 20 77 6f 72  {.        // wor
0510: 64 20 73 69 6d 70 6c 69 63 61 74 69 6f 6e 20 62  d simplication b
0520: 65 66 6f 72 65 20 63 61 6c 63 75 6c 61 74 69 6e  efore calculatin
0530: 67 20 64 69 73 74 61 6e 63 65 20 62 65 74 77 65  g distance betwe
0540: 65 6e 20 77 6f 72 64 73 0a 20 20 20 20 20 20 20  en words.       
0550: 20 73 57 6f 72 64 20 3d 20 73 57 6f 72 64 2e 74   sWord = sWord.t
0560: 6f 4c 6f 77 65 72 43 61 73 65 28 29 3b 0a 20 20  oLowerCase();.  
0570: 20 20 20 20 20 20 6c 65 74 20 73 4e 65 77 57 6f        let sNewWo
0580: 72 64 20 3d 20 22 22 3b 0a 20 20 20 20 20 20 20  rd = "";.       
0590: 20 6c 65 74 20 69 20 3d 20 31 3b 0a 20 20 20 20   let i = 1;.    
05a0: 20 20 20 20 66 6f 72 20 28 6c 65 74 20 63 20 6f      for (let c o
05b0: 66 20 73 57 6f 72 64 29 20 7b 0a 20 20 20 20 20  f sWord) {.     
05c0: 20 20 20 20 20 20 20 6c 65 74 20 63 4e 65 77 20         let cNew 
05d0: 3d 20 74 68 69 73 2e 5f 78 54 72 61 6e 73 43 68  = this._xTransCh
05e0: 61 72 73 46 6f 72 53 69 6d 70 6c 69 66 69 63 61  arsForSimplifica
05f0: 74 69 6f 6e 2e 67 6c 5f 67 65 74 28 63 2c 20 63  tion.gl_get(c, c
0600: 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 6c  );.            l
0610: 65 74 20 63 4e 65 78 74 20 3d 20 73 57 6f 72 64  et cNext = sWord
0620: 2e 73 6c 69 63 65 28 69 2c 20 69 2b 31 29 0a 20  .slice(i, i+1). 
0630: 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 63             if (c
0640: 4e 65 77 20 21 3d 20 74 68 69 73 2e 5f 78 54 72  New != this._xTr
0650: 61 6e 73 43 68 61 72 73 46 6f 72 53 69 6d 70 6c  ansCharsForSimpl
0660: 69 66 69 63 61 74 69 6f 6e 2e 67 6c 5f 67 65 74  ification.gl_get
0670: 28 63 4e 65 78 74 2c 20 63 4e 65 78 74 29 29 20  (cNext, cNext)) 
0680: 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  {.              
0690: 20 20 73 4e 65 77 57 6f 72 64 20 2b 3d 20 63 4e    sNewWord += cN
06a0: 65 77 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20  ew;.            
06b0: 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 2b  }.            i+
06c0: 2b 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20  +;.        }.   
06d0: 20 20 20 20 20 72 65 74 75 72 6e 20 73 4e 65 77       return sNew
06e0: 57 6f 72 64 2e 72 65 70 6c 61 63 65 28 2f 65 61  Word.replace(/ea
06f0: 75 2f 67 2c 20 22 6f 22 29 2e 72 65 70 6c 61 63  u/g, "o").replac
0700: 65 28 2f 61 75 2f 67 2c 20 22 6f 22 29 2e 72 65  e(/au/g, "o").re
0710: 70 6c 61 63 65 28 2f 61 69 2f 67 2c 20 22 65 22  place(/ai/g, "e"
0720: 29 2e 72 65 70 6c 61 63 65 28 2f 65 69 2f 67 2c  ).replace(/ei/g,
0730: 20 22 65 22 29 2e 72 65 70 6c 61 63 65 28 2f 70   "e").replace(/p
0740: 68 2f 67 2c 20 22 66 22 29 3b 0a 20 20 20 20 7d  h/g, "f");.    }
0750: 2c 0a 0a 20 20 20 20 61 56 6f 77 65 6c 3a 20 6e  ,..    aVowel: n
0760: 65 77 20 53 65 74 28 22 61 c3 a1 c3 a0 c3 a2 c3  ew Set("a.......
0770: a4 c4 81 65 c3 a9 c3 a8 c3 aa c3 ab c4 93 69 c3  ...e..........i.
0780: ad c3 ac c3 ae c3 af c4 ab 6f c3 b3 c3 b2 c3 b4  .........o......
0790: c3 b6 c5 8d 75 c3 ba c3 b9 c3 bb c3 bc c5 ab 79  ....u..........y
07a0: c3 bd e1 bb b3 c5 b7 c3 bf c8 b3 c5 93 c3 a6 41  ...............A
07b0: c3 81 c3 80 c3 82 c3 84 c4 80 45 c3 89 c3 88 c3  ..........E.....
07c0: 8a c3 8b c4 92 49 c3 8d c3 8c c3 8e c3 8f c4 aa  .....I..........
07d0: 4f c3 93 c3 92 c3 94 c3 96 c5 8c 55 c3 9a c3 99  O..........U....
07e0: c3 9b c3 9c c5 aa 59 c3 9d e1 bb b2 c5 b6 c5 b8  ......Y.........
07f0: c8 b2 c5 92 c3 86 22 29 2c 0a 20 20 20 20 61 43  ......"),.    aC
0800: 6f 6e 73 6f 6e 61 6e 74 3a 20 6e 65 77 20 53 65  onsonant: new Se
0810: 74 28 22 62 63 c3 a7 64 66 67 68 6a 6b 6c 6d 6e  t("bc..dfghjklmn
0820: c3 b1 70 71 72 73 74 76 77 78 7a 42 43 c3 87 44  ..pqrstvwxzBC..D
0830: 46 47 48 4a 4b 4c 4d 4e c3 91 50 51 52 53 54 56  FGHJKLMN..PQRSTV
0840: 57 58 5a 22 29 2c 0a 20 20 20 20 61 44 6f 75 62  WXZ"),.    aDoub
0850: 6c 65 3a 20 6e 65 77 20 53 65 74 28 22 62 63 64  le: new Set("bcd
0860: 66 6a 6b 6c 6d 6e 70 72 73 74 7a 42 43 44 46 4a  fjklmnprstzBCDFJ
0870: 4b 4c 4d 4e 50 52 53 54 5a 22 29 2c 20 20 2f 2f  KLMNPRSTZ"),  //
0880: 20 6c 65 74 74 65 72 73 20 74 68 61 74 20 6d 61   letters that ma
0890: 79 20 62 65 20 75 73 65 64 20 74 77 69 63 65 20  y be used twice 
08a0: 73 75 63 63 65 73 73 69 76 65 6c 79 0a 0a 0a 20  successively... 
08b0: 20 20 20 2f 2f 20 53 69 6d 69 6c 61 72 20 63 68     // Similar ch
08c0: 61 72 73 0a 0a 20 20 20 20 64 31 74 6f 31 3a 20  ars..    d1to1: 
08d0: 6e 65 77 20 4d 61 70 28 5b 0a 20 20 20 20 20 20  new Map([.      
08e0: 20 20 5b 22 31 22 2c 20 22 6c 69 c3 ae 4c 49 c3    ["1", "li..LI.
08f0: 8e 22 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 32  ."],.        ["2
0900: 22 2c 20 22 7a 5a 22 5d 2c 0a 20 20 20 20 20 20  ", "zZ"],.      
0910: 20 20 5b 22 33 22 2c 20 22 65 c3 a9 c3 a8 c3 aa    ["3", "e......
0920: 45 c3 89 c3 88 c3 8a 22 5d 2c 0a 20 20 20 20 20  E......"],.     
0930: 20 20 20 5b 22 34 22 2c 20 22 61 c3 a0 c3 a2 41     ["4", "a....A
0940: c3 80 c3 82 22 5d 2c 0a 20 20 20 20 20 20 20 20  ...."],.        
0950: 5b 22 35 22 2c 20 22 73 67 53 47 22 5d 2c 0a 20  ["5", "sgSG"],. 
0960: 20 20 20 20 20 20 20 5b 22 36 22 2c 20 22 62 64         ["6", "bd
0970: 67 42 44 47 22 5d 2c 0a 20 20 20 20 20 20 20 20  gBDG"],.        
0980: 5b 22 37 22 2c 20 22 6c 74 4c 54 22 5d 2c 0a 20  ["7", "ltLT"],. 
0990: 20 20 20 20 20 20 20 5b 22 38 22 2c 20 22 62 42         ["8", "bB
09a0: 22 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 39 22  "],.        ["9"
09b0: 2c 20 22 67 62 64 47 42 44 22 5d 2c 0a 20 20 20  , "gbdGBD"],.   
09c0: 20 20 20 20 20 5b 22 30 22 2c 20 22 6f c3 b4 4f       ["0", "o..O
09d0: c3 94 22 5d 2c 0a 0a 20 20 20 20 20 20 20 20 5b  .."],..        [
09e0: 22 61 22 2c 20 22 61 c3 a0 c3 a2 c3 a1 c3 a4 c3  "a", "a.........
09f0: a6 22 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 41  ."],.        ["A
0a00: 22 2c 20 22 41 c3 80 c3 82 c3 81 c3 84 c3 86 22  ", "A.........."
0a10: 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 c3 a0 22  ],.        [".."
0a20: 2c 20 22 61 c3 a0 c3 a2 c3 a1 c3 a4 c3 a6 22 5d  , "a.........."]
0a30: 2c 0a 20 20 20 20 20 20 20 20 5b 22 c3 80 22 2c  ,.        ["..",
0a40: 20 22 41 c3 80 c3 82 c3 81 c3 84 c3 86 22 5d 2c   "A.........."],
0a50: 0a 20 20 20 20 20 20 20 20 5b 22 c3 a2 22 2c 20  .        ["..", 
0a60: 22 61 c3 a0 c3 a2 c3 a1 c3 a4 c3 a6 22 5d 2c 0a  "a.........."],.
0a70: 20 20 20 20 20 20 20 20 5b 22 c3 82 22 2c 20 22          ["..", "
0a80: 41 c3 80 c3 82 c3 81 c3 84 c3 86 22 5d 2c 0a 20  A.........."],. 
0a90: 20 20 20 20 20 20 20 5b 22 c3 a1 22 2c 20 22 61         ["..", "a
0aa0: c3 a0 c3 a2 c3 a1 c3 a4 c3 a6 22 5d 2c 0a 20 20  .........."],.  
0ab0: 20 20 20 20 20 20 5b 22 c3 81 22 2c 20 22 41 c3        ["..", "A.
0ac0: 80 c3 82 c3 81 c3 84 c3 86 22 5d 2c 0a 20 20 20  ........."],.   
0ad0: 20 20 20 20 20 5b 22 c3 a4 22 2c 20 22 61 c3 a0       ["..", "a..
0ae0: c3 a2 c3 a1 c3 a4 c3 a6 22 5d 2c 0a 20 20 20 20  ........"],.    
0af0: 20 20 20 20 5b 22 c3 84 22 2c 20 22 41 c3 80 c3      ["..", "A...
0b00: 82 c3 81 c3 84 c3 86 22 5d 2c 0a 0a 20 20 20 20  ......."],..    
0b10: 20 20 20 20 5b 22 c3 a6 22 2c 20 22 c3 a6 c3 a9      ["..", "....
0b20: 61 22 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 c3  a"],.        [".
0b30: 86 22 2c 20 22 c3 86 c3 89 41 22 5d 2c 0a 0a 20  .", "....A"],.. 
0b40: 20 20 20 20 20 20 20 5b 22 63 22 2c 20 22 63 c3         ["c", "c.
0b50: a7 73 6b 71 c5 9b c5 9d 22 5d 2c 0a 20 20 20 20  .skq...."],.    
0b60: 20 20 20 20 5b 22 43 22 2c 20 22 43 c3 87 53 4b      ["C", "C..SK
0b70: 51 c5 9a c5 9c 22 5d 2c 0a 20 20 20 20 20 20 20  Q...."],.       
0b80: 20 5b 22 c3 a7 22 2c 20 22 63 c3 a7 73 6b 71 c5   ["..", "c..skq.
0b90: 9b c5 9d 22 5d 2c 0a 20 20 20 20 20 20 20 20 5b  ..."],.        [
0ba0: 22 c3 87 22 2c 20 22 43 c3 87 53 4b 51 c5 9a c5  "..", "C..SKQ...
0bb0: 9c 22 5d 2c 0a 0a 20 20 20 20 20 20 20 20 5b 22  ."],..        ["
0bc0: 65 22 2c 20 22 65 c3 a9 c3 a8 c3 aa c3 ab c5 93  e", "e..........
0bd0: 22 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 45 22  "],.        ["E"
0be0: 2c 20 22 45 c3 89 c3 88 c3 8a c3 8b c5 92 22 5d  , "E.........."]
0bf0: 2c 0a 20 20 20 20 20 20 20 20 5b 22 c3 a9 22 2c  ,.        ["..",
0c00: 20 22 65 c3 a9 c3 a8 c3 aa c3 ab c5 93 22 5d 2c   "e.........."],
0c10: 0a 20 20 20 20 20 20 20 20 5b 22 c3 89 22 2c 20  .        ["..", 
0c20: 22 45 c3 89 c3 88 c3 8a c3 8b c5 92 22 5d 2c 0a  "E.........."],.
0c30: 20 20 20 20 20 20 20 20 5b 22 c3 aa 22 2c 20 22          ["..", "
0c40: 65 c3 a9 c3 a8 c3 aa c3 ab c5 93 22 5d 2c 0a 20  e.........."],. 
0c50: 20 20 20 20 20 20 20 5b 22 c3 8a 22 2c 20 22 45         ["..", "E
0c60: c3 89 c3 88 c3 8a c3 8b c5 92 22 5d 2c 0a 20 20  .........."],.  
0c70: 20 20 20 20 20 20 5b 22 c3 a8 22 2c 20 22 65 c3        ["..", "e.
0c80: a9 c3 a8 c3 aa c3 ab c5 93 22 5d 2c 0a 20 20 20  ........."],.   
0c90: 20 20 20 20 20 5b 22 c3 88 22 2c 20 22 45 c3 89       ["..", "E..
0ca0: c3 88 c3 8a c3 8b c5 92 22 5d 2c 0a 20 20 20 20  ........"],.    
0cb0: 20 20 20 20 5b 22 c3 ab 22 2c 20 22 65 c3 a9 c3      ["..", "e...
0cc0: a8 c3 aa c3 ab c5 93 22 5d 2c 0a 20 20 20 20 20  ......."],.     
0cd0: 20 20 20 5b 22 c3 8b 22 2c 20 22 45 c3 89 c3 88     ["..", "E....
0ce0: c3 8a c3 8b c5 92 22 5d 2c 0a 0a 20 20 20 20 20  ......"],..     
0cf0: 20 20 20 5b 22 67 22 2c 20 22 67 6a 22 5d 2c 0a     ["g", "gj"],.
0d00: 20 20 20 20 20 20 20 20 5b 22 47 22 2c 20 22 47          ["G", "G
0d10: 4a 22 5d 2c 0a 20 20 20 20 20 20 20 20 0a 20 20  J"],.        .  
0d20: 20 20 20 20 20 20 5b 22 69 22 2c 20 22 69 c3 ae        ["i", "i..
0d30: c3 af 79 c3 ad c3 ac c3 bf 22 5d 2c 0a 20 20 20  ..y......"],.   
0d40: 20 20 20 20 20 5b 22 49 22 2c 20 22 49 c3 8e c3       ["I", "I...
0d50: 8f 59 c3 8d c3 8c c5 b8 22 5d 2c 0a 20 20 20 20  .Y......"],.    
0d60: 20 20 20 20 5b 22 c3 ae 22 2c 20 22 69 c3 ae c3      ["..", "i...
0d70: af 79 c3 ad c3 ac c3 bf 22 5d 2c 0a 20 20 20 20  .y......"],.    
0d80: 20 20 20 20 5b 22 c3 8e 22 2c 20 22 49 c3 8e c3      ["..", "I...
0d90: 8f 59 c3 8d c3 8c c5 b8 22 5d 2c 0a 20 20 20 20  .Y......"],.    
0da0: 20 20 20 20 5b 22 c3 af 22 2c 20 22 69 c3 ae c3      ["..", "i...
0db0: af 79 c3 ad c3 ac c3 bf 22 5d 2c 0a 20 20 20 20  .y......"],.    
0dc0: 20 20 20 20 5b 22 c3 8f 22 2c 20 22 49 c3 8e c3      ["..", "I...
0dd0: 8f 59 c3 8d c3 8c c5 b8 22 5d 2c 0a 20 20 20 20  .Y......"],.    
0de0: 20 20 20 20 5b 22 c3 ad 22 2c 20 22 69 c3 ae c3      ["..", "i...
0df0: af 79 c3 ad c3 ac c3 bf 22 5d 2c 0a 20 20 20 20  .y......"],.    
0e00: 20 20 20 20 5b 22 c3 8d 22 2c 20 22 49 c3 8e c3      ["..", "I...
0e10: 8f 59 c3 8d c3 8c c5 b8 22 5d 2c 0a 20 20 20 20  .Y......"],.    
0e20: 20 20 20 20 5b 22 c3 ac 22 2c 20 22 69 c3 ae c3      ["..", "i...
0e30: af 79 c3 ad c3 ac c3 bf 22 5d 2c 0a 20 20 20 20  .y......"],.    
0e40: 20 20 20 20 5b 22 c3 8c 22 2c 20 22 49 c3 8e c3      ["..", "I...
0e50: 8f 59 c3 8d c3 8c c5 b8 22 5d 2c 0a 0a 20 20 20  .Y......"],..   
0e60: 20 20 20 20 20 5b 22 6a 22 2c 20 22 6a 67 22 5d       ["j", "jg"]
0e70: 2c 0a 20 20 20 20 20 20 20 20 5b 22 4a 22 2c 20  ,.        ["J", 
0e80: 22 4a 47 22 5d 2c 0a 0a 20 20 20 20 20 20 20 20  "JG"],..        
0e90: 5b 22 6b 22 2c 20 22 6b 63 71 22 5d 2c 0a 20 20  ["k", "kcq"],.  
0ea0: 20 20 20 20 20 20 5b 22 4b 22 2c 20 22 4b 43 51        ["K", "KCQ
0eb0: 22 5d 2c 0a 0a 20 20 20 20 20 20 20 20 5b 22 6e  "],..        ["n
0ec0: 22 2c 20 22 6e c3 b1 22 5d 2c 0a 20 20 20 20 20  ", "n.."],.     
0ed0: 20 20 20 5b 22 4e 22 2c 20 22 4e c3 91 22 5d 2c     ["N", "N.."],
0ee0: 0a 0a 20 20 20 20 20 20 20 20 5b 22 6f 22 2c 20  ..        ["o", 
0ef0: 22 6f c3 b4 c3 b3 c3 b2 c3 b6 c5 93 22 5d 2c 0a  "o.........."],.
0f00: 20 20 20 20 20 20 20 20 5b 22 4f 22 2c 20 22 4f          ["O", "O
0f10: c3 94 c3 93 c3 92 c3 96 c5 92 22 5d 2c 0a 20 20  .........."],.  
0f20: 20 20 20 20 20 20 5b 22 c3 b4 22 2c 20 22 6f c3        ["..", "o.
0f30: b4 c3 b3 c3 b2 c3 b6 c5 93 22 5d 2c 0a 20 20 20  ........."],.   
0f40: 20 20 20 20 20 5b 22 c3 94 22 2c 20 22 4f c3 94       ["..", "O..
0f50: c3 93 c3 92 c3 96 c5 92 22 5d 2c 0a 20 20 20 20  ........"],.    
0f60: 20 20 20 20 5b 22 c3 b3 22 2c 20 22 6f c3 b4 c3      ["..", "o...
0f70: b3 c3 b2 c3 b6 c5 93 22 5d 2c 0a 20 20 20 20 20  ......."],.     
0f80: 20 20 20 5b 22 c3 93 22 2c 20 22 4f c3 94 c3 93     ["..", "O....
0f90: c3 92 c3 96 c5 92 22 5d 2c 0a 20 20 20 20 20 20  ......"],.      
0fa0: 20 20 5b 22 c3 b2 22 2c 20 22 6f c3 b4 c3 b3 c3    ["..", "o.....
0fb0: b2 c3 b6 c5 93 22 5d 2c 0a 20 20 20 20 20 20 20  ....."],.       
0fc0: 20 5b 22 c3 92 22 2c 20 22 4f c3 94 c3 93 c3 92   ["..", "O......
0fd0: c3 96 c5 92 22 5d 2c 0a 20 20 20 20 20 20 20 20  ...."],.        
0fe0: 5b 22 c3 b6 22 2c 20 22 6f c3 b4 c3 b3 c3 b2 c3  ["..", "o.......
0ff0: b6 c5 93 22 5d 2c 0a 20 20 20 20 20 20 20 20 5b  ..."],.        [
1000: 22 c3 96 22 2c 20 22 4f c3 94 c3 93 c3 92 c3 96  "..", "O........
1010: c5 92 22 5d 2c 0a 0a 20 20 20 20 20 20 20 20 5b  .."],..        [
1020: 22 c5 93 22 2c 20 22 c5 93 6f c3 b4 65 c3 a9 c3  "..", "..o..e...
1030: a8 c3 aa c3 ab 22 5d 2c 0a 20 20 20 20 20 20 20  ....."],.       
1040: 20 5b 22 c5 92 22 2c 20 22 c5 92 4f c3 94 45 c3   ["..", "..O..E.
1050: 89 c3 88 c3 8a c3 8b 22 5d 2c 0a 0a 20 20 20 20  ......."],..    
1060: 20 20 20 20 5b 22 71 22 2c 20 22 71 63 6b 22 5d      ["q", "qck"]
1070: 2c 0a 20 20 20 20 20 20 20 20 5b 22 51 22 2c 20  ,.        ["Q", 
1080: 22 51 43 4b 22 5d 2c 0a 0a 20 20 20 20 20 20 20  "QCK"],..       
1090: 20 5b 22 73 22 2c 20 22 73 c5 9b c5 9d 63 c3 a7   ["s", "s....c..
10a0: 22 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 53 22  "],.        ["S"
10b0: 2c 20 22 53 c5 9a c5 9c 43 c3 87 22 5d 2c 0a 20  , "S....C.."],. 
10c0: 20 20 20 20 20 20 20 5b 22 c5 9b 22 2c 20 22 73         ["..", "s
10d0: c5 9b c5 9d 63 c3 a7 22 5d 2c 0a 20 20 20 20 20  ....c.."],.     
10e0: 20 20 20 5b 22 c5 9a 22 2c 20 22 53 c5 9a c5 9c     ["..", "S....
10f0: 43 c3 87 22 5d 2c 0a 20 20 20 20 20 20 20 20 5b  C.."],.        [
1100: 22 c5 9d 22 2c 20 22 73 c5 9b c5 9d 63 c3 a7 22  "..", "s....c.."
1110: 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 c5 9c 22  ],.        [".."
1120: 2c 20 22 53 c5 9a c5 9c 43 c3 87 22 5d 2c 0a 0a  , "S....C.."],..
1130: 20 20 20 20 20 20 20 20 5b 22 75 22 2c 20 22 75          ["u", "u
1140: c3 bb c3 b9 c3 bc c3 ba 22 5d 2c 0a 20 20 20 20  ........"],.    
1150: 20 20 20 20 5b 22 55 22 2c 20 22 55 c3 9b c3 99      ["U", "U....
1160: c3 9c c3 9a 22 5d 2c 0a 20 20 20 20 20 20 20 20  ...."],.        
1170: 5b 22 c3 bb 22 2c 20 22 75 c3 bb c3 b9 c3 bc c3  ["..", "u.......
1180: ba 22 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 c3  ."],.        [".
1190: 9b 22 2c 20 22 55 c3 9b c3 99 c3 9c c3 9a 22 5d  .", "U........"]
11a0: 2c 0a 20 20 20 20 20 20 20 20 5b 22 c3 b9 22 2c  ,.        ["..",
11b0: 20 22 75 c3 bb c3 b9 c3 bc c3 ba 22 5d 2c 0a 20   "u........"],. 
11c0: 20 20 20 20 20 20 20 5b 22 c3 99 22 2c 20 22 55         ["..", "U
11d0: c3 9b c3 99 c3 9c c3 9a 22 5d 2c 0a 20 20 20 20  ........"],.    
11e0: 20 20 20 20 5b 22 c3 bc 22 2c 20 22 75 c3 bb c3      ["..", "u...
11f0: b9 c3 bc c3 ba 22 5d 2c 0a 20 20 20 20 20 20 20  ....."],.       
1200: 20 5b 22 c3 9c 22 2c 20 22 55 c3 9b c3 99 c3 9c   ["..", "U......
1210: c3 9a 22 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22  .."],.        ["
1220: c3 ba 22 2c 20 22 75 c3 bb c3 b9 c3 bc c3 ba 22  ..", "u........"
1230: 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 c3 9a 22  ],.        [".."
1240: 2c 20 22 55 c3 9b c3 99 c3 9c c3 9a 22 5d 2c 0a  , "U........"],.
1250: 0a 20 20 20 20 20 20 20 20 5b 22 76 22 2c 20 22  .        ["v", "
1260: 76 77 22 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22  vw"],.        ["
1270: 56 22 2c 20 22 56 57 22 5d 2c 0a 0a 20 20 20 20  V", "VW"],..    
1280: 20 20 20 20 5b 22 77 22 2c 20 22 77 76 22 5d 2c      ["w", "wv"],
1290: 0a 20 20 20 20 20 20 20 20 5b 22 57 22 2c 20 22  .        ["W", "
12a0: 57 56 22 5d 2c 0a 0a 20 20 20 20 20 20 20 20 5b  WV"],..        [
12b0: 22 78 22 2c 20 22 78 63 6b 22 5d 2c 0a 20 20 20  "x", "xck"],.   
12c0: 20 20 20 20 20 5b 22 58 22 2c 20 22 58 43 4b 22       ["X", "XCK"
12d0: 5d 2c 0a 0a 20 20 20 20 20 20 20 20 5b 22 79 22  ],..        ["y"
12e0: 2c 20 22 79 c3 bf 69 c3 ae c5 b7 c3 bd e1 bb b3  , "y..i.........
12f0: 22 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 59 22  "],.        ["Y"
1300: 2c 20 22 59 c5 b8 49 c3 8e c5 b6 c3 9d e1 bb b2  , "Y..I.........
1310: 22 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 c3 bf  "],.        ["..
1320: 22 2c 20 22 79 c3 bf 69 c3 ae c5 b7 c3 bd e1 bb  ", "y..i........
1330: b3 22 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 c5  ."],.        [".
1340: b8 22 2c 20 22 59 c5 b8 49 c3 8e c5 b6 c3 9d e1  .", "Y..I.......
1350: bb b2 22 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22  .."],.        ["
1360: c5 b7 22 2c 20 22 79 c3 bf 69 c3 ae c5 b7 c3 bd  ..", "y..i......
1370: e1 bb b3 22 5d 2c 0a 20 20 20 20 20 20 20 20 5b  ..."],.        [
1380: 22 c5 b6 22 2c 20 22 59 c5 b8 49 c3 8e c5 b6 c3  "..", "Y..I.....
1390: 9d e1 bb b2 22 5d 2c 0a 20 20 20 20 20 20 20 20  ...."],.        
13a0: 5b 22 c3 bd 22 2c 20 22 79 c3 bf 69 c3 ae c5 b7  ["..", "y..i....
13b0: c3 bd e1 bb b3 22 5d 2c 0a 20 20 20 20 20 20 20  ....."],.       
13c0: 20 5b 22 c3 9d 22 2c 20 22 59 c5 b8 49 c3 8e c5   ["..", "Y..I...
13d0: b6 c3 9d e1 bb b2 22 5d 2c 0a 20 20 20 20 20 20  ......"],.      
13e0: 20 20 5b 22 e1 bb b3 22 2c 20 22 79 c3 bf 69 c3    ["...", "y..i.
13f0: ae c5 b7 c3 bd e1 bb b3 22 5d 2c 0a 20 20 20 20  ........"],.    
1400: 20 20 20 20 5b 22 e1 bb b2 22 2c 20 22 59 c5 b8      ["...", "Y..
1410: 49 c3 8e c5 b6 c3 9d e1 bb b2 22 5d 2c 0a 0a 20  I........."],.. 
1420: 20 20 20 20 20 20 20 5b 22 7a 22 2c 20 22 7a 73         ["z", "zs
1430: 22 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 5a 22  "],.        ["Z"
1440: 2c 20 22 5a 53 22 5d 2c 0a 20 20 20 20 5d 29 2c  , "ZS"],.    ]),
1450: 0a 0a 20 20 20 20 64 31 74 6f 58 3a 20 6e 65 77  ..    d1toX: new
1460: 20 4d 61 70 28 5b 0a 20 20 20 20 20 20 20 20 5b   Map([.        [
1470: 22 c3 a6 22 2c 20 5b 22 61 65 22 2c 5d 5d 2c 0a  "..", ["ae",]],.
1480: 20 20 20 20 20 20 20 20 5b 22 c3 86 22 2c 20 5b          ["..", [
1490: 22 41 45 22 2c 5d 5d 2c 0a 20 20 20 20 20 20 20  "AE",]],.       
14a0: 20 5b 22 62 22 2c 20 5b 22 62 62 22 2c 5d 5d 2c   ["b", ["bb",]],
14b0: 0a 20 20 20 20 20 20 20 20 5b 22 42 22 2c 20 5b  .        ["B", [
14c0: 22 42 42 22 2c 5d 5d 2c 0a 20 20 20 20 20 20 20  "BB",]],.       
14d0: 20 5b 22 63 22 2c 20 5b 22 63 63 22 2c 20 22 73   ["c", ["cc", "s
14e0: 73 22 2c 20 22 71 75 22 2c 20 22 63 68 22 5d 5d  s", "qu", "ch"]]
14f0: 2c 0a 20 20 20 20 20 20 20 20 5b 22 43 22 2c 20  ,.        ["C", 
1500: 5b 22 43 43 22 2c 20 22 53 53 22 2c 20 22 51 55  ["CC", "SS", "QU
1510: 22 2c 20 22 43 48 22 5d 5d 2c 0a 20 20 20 20 20  ", "CH"]],.     
1520: 20 20 20 5b 22 64 22 2c 20 5b 22 64 64 22 2c 5d     ["d", ["dd",]
1530: 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 44 22 2c  ],.        ["D",
1540: 20 5b 22 44 44 22 2c 5d 5d 2c 0a 20 20 20 20 20   ["DD",]],.     
1550: 20 20 20 5b 22 c3 a9 22 2c 20 5b 22 61 69 22 2c     ["..", ["ai",
1560: 20 22 65 69 22 5d 5d 2c 0a 20 20 20 20 20 20 20   "ei"]],.       
1570: 20 5b 22 c3 89 22 2c 20 5b 22 41 49 22 2c 20 22   ["..", ["AI", "
1580: 45 49 22 5d 5d 2c 0a 20 20 20 20 20 20 20 20 5b  EI"]],.        [
1590: 22 66 22 2c 20 5b 22 66 66 22 2c 20 22 70 68 22  "f", ["ff", "ph"
15a0: 5d 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 46 22  ]],.        ["F"
15b0: 2c 20 5b 22 46 46 22 2c 20 22 50 48 22 5d 5d 2c  , ["FF", "PH"]],
15c0: 0a 20 20 20 20 20 20 20 20 5b 22 67 22 2c 20 5b  .        ["g", [
15d0: 22 67 75 22 2c 20 22 67 65 22 2c 20 22 67 67 22  "gu", "ge", "gg"
15e0: 2c 20 22 67 68 22 5d 5d 2c 0a 20 20 20 20 20 20  , "gh"]],.      
15f0: 20 20 5b 22 47 22 2c 20 5b 22 47 55 22 2c 20 22    ["G", ["GU", "
1600: 47 45 22 2c 20 22 47 47 22 2c 20 22 47 48 22 5d  GE", "GG", "GH"]
1610: 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 6a 22 2c  ],.        ["j",
1620: 20 5b 22 6a 6a 22 2c 20 22 64 6a 22 5d 5d 2c 0a   ["jj", "dj"]],.
1630: 20 20 20 20 20 20 20 20 5b 22 4a 22 2c 20 5b 22          ["J", ["
1640: 4a 4a 22 2c 20 22 44 4a 22 5d 5d 2c 0a 20 20 20  JJ", "DJ"]],.   
1650: 20 20 20 20 20 5b 22 6b 22 2c 20 5b 22 71 75 22       ["k", ["qu"
1660: 2c 20 22 63 6b 22 2c 20 22 63 68 22 2c 20 22 63  , "ck", "ch", "c
1670: 75 22 2c 20 22 6b 6b 22 2c 20 22 6b 68 22 5d 5d  u", "kk", "kh"]]
1680: 2c 0a 20 20 20 20 20 20 20 20 5b 22 4b 22 2c 20  ,.        ["K", 
1690: 5b 22 51 55 22 2c 20 22 43 4b 22 2c 20 22 43 48  ["QU", "CK", "CH
16a0: 22 2c 20 22 43 55 22 2c 20 22 4b 4b 22 2c 20 22  ", "CU", "KK", "
16b0: 4b 48 22 5d 5d 2c 0a 20 20 20 20 20 20 20 20 5b  KH"]],.        [
16c0: 22 6c 22 2c 20 5b 22 6c 6c 22 2c 5d 5d 2c 0a 20  "l", ["ll",]],. 
16d0: 20 20 20 20 20 20 20 5b 22 4c 22 2c 20 5b 22 4c         ["L", ["L
16e0: 4c 22 2c 5d 5d 2c 0a 20 20 20 20 20 20 20 20 5b  L",]],.        [
16f0: 22 6d 22 2c 20 5b 22 6d 6d 22 2c 20 22 6d 6e 22  "m", ["mm", "mn"
1700: 5d 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 4d 22  ]],.        ["M"
1710: 2c 20 5b 22 4d 4d 22 2c 20 22 4d 4e 22 5d 5d 2c  , ["MM", "MN"]],
1720: 0a 20 20 20 20 20 20 20 20 5b 22 6e 22 2c 20 5b  .        ["n", [
1730: 22 6e 6e 22 2c 20 22 6e 6d 22 2c 20 22 6d 6e 22  "nn", "nm", "mn"
1740: 5d 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 4e 22  ]],.        ["N"
1750: 2c 20 5b 22 4e 4e 22 2c 20 22 4e 4d 22 2c 20 22  , ["NN", "NM", "
1760: 4d 4e 22 5d 5d 2c 0a 20 20 20 20 20 20 20 20 5b  MN"]],.        [
1770: 22 6f 22 2c 20 5b 22 61 75 22 2c 20 22 65 61 75  "o", ["au", "eau
1780: 22 5d 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 4f  "]],.        ["O
1790: 22 2c 20 5b 22 41 55 22 2c 20 22 45 41 55 22 5d  ", ["AU", "EAU"]
17a0: 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 c5 93 22  ],.        [".."
17b0: 2c 20 5b 22 6f 65 22 2c 20 22 65 75 22 5d 5d 2c  , ["oe", "eu"]],
17c0: 0a 20 20 20 20 20 20 20 20 5b 22 c5 92 22 2c 20  .        ["..", 
17d0: 5b 22 4f 45 22 2c 20 22 45 55 22 5d 5d 2c 0a 20  ["OE", "EU"]],. 
17e0: 20 20 20 20 20 20 20 5b 22 70 22 2c 20 5b 22 70         ["p", ["p
17f0: 70 22 2c 20 22 70 68 22 5d 5d 2c 0a 20 20 20 20  p", "ph"]],.    
1800: 20 20 20 20 5b 22 50 22 2c 20 5b 22 50 50 22 2c      ["P", ["PP",
1810: 20 22 50 48 22 5d 5d 2c 0a 20 20 20 20 20 20 20   "PH"]],.       
1820: 20 5b 22 71 22 2c 20 5b 22 71 75 22 2c 20 22 63   ["q", ["qu", "c
1830: 68 22 2c 20 22 63 71 22 2c 20 22 63 6b 22 2c 20  h", "cq", "ck", 
1840: 22 6b 6b 22 5d 5d 2c 0a 20 20 20 20 20 20 20 20  "kk"]],.        
1850: 5b 22 51 22 2c 20 5b 22 51 55 22 2c 20 22 43 48  ["Q", ["QU", "CH
1860: 22 2c 20 22 43 51 22 2c 20 22 43 4b 22 2c 20 22  ", "CQ", "CK", "
1870: 4b 4b 22 5d 5d 2c 0a 20 20 20 20 20 20 20 20 5b  KK"]],.        [
1880: 22 72 22 2c 20 5b 22 72 72 22 2c 5d 5d 2c 0a 20  "r", ["rr",]],. 
1890: 20 20 20 20 20 20 20 5b 22 52 22 2c 20 5b 22 52         ["R", ["R
18a0: 52 22 2c 5d 5d 2c 0a 20 20 20 20 20 20 20 20 5b  R",]],.        [
18b0: 22 73 22 2c 20 5b 22 73 73 22 2c 20 22 73 68 22  "s", ["ss", "sh"
18c0: 5d 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 53 22  ]],.        ["S"
18d0: 2c 20 5b 22 53 53 22 2c 20 22 53 48 22 5d 5d 2c  , ["SS", "SH"]],
18e0: 0a 20 20 20 20 20 20 20 20 5b 22 74 22 2c 20 5b  .        ["t", [
18f0: 22 74 74 22 2c 20 22 74 68 22 5d 5d 2c 0a 20 20  "tt", "th"]],.  
1900: 20 20 20 20 20 20 5b 22 54 22 2c 20 5b 22 54 54        ["T", ["TT
1910: 22 2c 20 22 54 48 22 5d 5d 2c 0a 20 20 20 20 20  ", "TH"]],.     
1920: 20 20 20 5b 22 78 22 2c 20 5b 22 63 63 22 2c 20     ["x", ["cc", 
1930: 22 63 74 22 2c 20 22 78 78 22 5d 5d 2c 0a 20 20  "ct", "xx"]],.  
1940: 20 20 20 20 20 20 5b 22 58 22 2c 20 5b 22 43 43        ["X", ["CC
1950: 22 2c 20 22 43 54 22 2c 20 22 58 58 22 5d 5d 2c  ", "CT", "XX"]],
1960: 0a 20 20 20 20 20 20 20 20 5b 22 7a 22 2c 20 5b  .        ["z", [
1970: 22 73 73 22 2c 20 22 7a 68 22 5d 5d 2c 0a 20 20  "ss", "zh"]],.  
1980: 20 20 20 20 20 20 5b 22 5a 22 2c 20 5b 22 53 53        ["Z", ["SS
1990: 22 2c 20 22 5a 48 22 5d 5d 2c 0a 20 20 20 20 5d  ", "ZH"]],.    ]
19a0: 29 2c 0a 0a 20 20 20 20 67 65 74 31 74 6f 58 52  ),..    get1toXR
19b0: 65 70 6c 61 63 65 6d 65 6e 74 3a 20 66 75 6e 63  eplacement: func
19c0: 74 69 6f 6e 20 28 63 50 72 65 76 2c 20 63 43 75  tion (cPrev, cCu
19d0: 72 2c 20 63 4e 65 78 74 29 20 7b 0a 20 20 20 20  r, cNext) {.    
19e0: 20 20 20 20 69 66 20 28 74 68 69 73 2e 61 43 6f      if (this.aCo
19f0: 6e 73 6f 6e 61 6e 74 2e 68 61 73 28 63 43 75 72  nsonant.has(cCur
1a00: 29 20 20 26 26 20 20 28 74 68 69 73 2e 61 43 6f  )  &&  (this.aCo
1a10: 6e 73 6f 6e 61 6e 74 2e 68 61 73 28 63 50 72 65  nsonant.has(cPre
1a20: 76 29 20 20 7c 7c 20 20 74 68 69 73 2e 61 43 6f  v)  ||  this.aCo
1a30: 6e 73 6f 6e 61 6e 74 2e 68 61 73 28 63 4e 65 78  nsonant.has(cNex
1a40: 74 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20  t))) {.         
1a50: 20 20 20 72 65 74 75 72 6e 20 5b 5d 3b 0a 20 20     return [];.  
1a60: 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20        }.        
1a70: 72 65 74 75 72 6e 20 74 68 69 73 2e 64 31 74 6f  return this.d1to
1a80: 58 2e 67 6c 5f 67 65 74 28 63 43 75 72 2c 20 5b  X.gl_get(cCur, [
1a90: 5d 29 3b 0a 20 20 20 20 7d 2c 0a 0a 20 20 20 20  ]);.    },..    
1aa0: 64 32 74 6f 58 3a 20 6e 65 77 20 4d 61 70 28 5b  d2toX: new Map([
1ab0: 0a 20 20 20 20 20 20 20 20 5b 22 61 6d 22 2c 20  .        ["am", 
1ac0: 5b 22 61 6e 22 2c 20 22 65 6e 22 2c 20 22 65 6d  ["an", "en", "em
1ad0: 22 5d 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 41  "]],.        ["A
1ae0: 4d 22 2c 20 5b 22 41 4e 22 2c 20 22 45 4e 22 2c  M", ["AN", "EN",
1af0: 20 22 45 4d 22 5d 5d 2c 0a 20 20 20 20 20 20 20   "EM"]],.       
1b00: 20 5b 22 61 6e 22 2c 20 5b 22 61 6d 22 2c 20 22   ["an", ["am", "
1b10: 65 6e 22 2c 20 22 65 6d 22 5d 5d 2c 0a 20 20 20  en", "em"]],.   
1b20: 20 20 20 20 20 5b 22 41 4e 22 2c 20 5b 22 41 4d       ["AN", ["AM
1b30: 22 2c 20 22 45 4e 22 2c 20 22 45 4d 22 5d 5d 2c  ", "EN", "EM"]],
1b40: 0a 20 20 20 20 20 20 20 20 5b 22 61 75 22 2c 20  .        ["au", 
1b50: 5b 22 65 61 75 22 2c 20 22 6f 22 2c 20 22 c3 b4  ["eau", "o", "..
1b60: 22 5d 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 41  "]],.        ["A
1b70: 55 22 2c 20 5b 22 45 41 55 22 2c 20 22 4f 22 2c  U", ["EAU", "O",
1b80: 20 22 c3 94 22 5d 5d 2c 0a 20 20 20 20 20 20 20   ".."]],.       
1b90: 20 5b 22 65 6d 22 2c 20 5b 22 61 6e 22 2c 20 22   ["em", ["an", "
1ba0: 61 6d 22 2c 20 22 65 6e 22 5d 5d 2c 0a 20 20 20  am", "en"]],.   
1bb0: 20 20 20 20 20 5b 22 45 4d 22 2c 20 5b 22 41 4e       ["EM", ["AN
1bc0: 22 2c 20 22 41 4d 22 2c 20 22 45 4e 22 5d 5d 2c  ", "AM", "EN"]],
1bd0: 0a 20 20 20 20 20 20 20 20 5b 22 65 6e 22 2c 20  .        ["en", 
1be0: 5b 22 61 6e 22 2c 20 22 61 6d 22 2c 20 22 65 6d  ["an", "am", "em
1bf0: 22 5d 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 45  "]],.        ["E
1c00: 4e 22 2c 20 5b 22 41 4e 22 2c 20 22 41 4d 22 2c  N", ["AN", "AM",
1c10: 20 22 45 4d 22 5d 5d 2c 0a 20 20 20 20 20 20 20   "EM"]],.       
1c20: 20 5b 22 61 65 22 2c 20 5b 22 c3 a6 22 2c 20 22   ["ae", ["..", "
1c30: c3 a9 22 5d 5d 2c 0a 20 20 20 20 20 20 20 20 5b  .."]],.        [
1c40: 22 41 45 22 2c 20 5b 22 c3 86 22 2c 20 22 c3 89  "AE", ["..", "..
1c50: 22 5d 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 61  "]],.        ["a
1c60: 69 22 2c 20 5b 22 65 69 22 2c 20 22 c3 a9 22 2c  i", ["ei", "..",
1c70: 20 22 c3 a8 22 2c 20 22 c3 aa 22 2c 20 22 c3 ab   "..", "..", "..
1c80: 22 5d 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 41  "]],.        ["A
1c90: 49 22 2c 20 5b 22 45 49 22 2c 20 22 c3 89 22 2c  I", ["EI", "..",
1ca0: 20 22 c3 88 22 2c 20 22 c3 8a 22 2c 20 22 c3 8b   "..", "..", "..
1cb0: 22 5d 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 65  "]],.        ["e
1cc0: 69 22 2c 20 5b 22 61 69 22 2c 20 22 c3 a9 22 2c  i", ["ai", "..",
1cd0: 20 22 c3 a8 22 2c 20 22 c3 aa 22 2c 20 22 c3 ab   "..", "..", "..
1ce0: 22 5d 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 45  "]],.        ["E
1cf0: 49 22 2c 20 5b 22 41 49 22 2c 20 22 c3 89 22 2c  I", ["AI", "..",
1d00: 20 22 c3 88 22 2c 20 22 c3 8a 22 2c 20 22 c3 8b   "..", "..", "..
1d10: 22 5d 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 63  "]],.        ["c
1d20: 68 22 2c 20 5b 22 73 68 22 2c 20 22 63 22 2c 20  h", ["sh", "c", 
1d30: 22 73 73 22 5d 5d 2c 0a 20 20 20 20 20 20 20 20  "ss"]],.        
1d40: 5b 22 43 48 22 2c 20 5b 22 53 48 22 2c 20 22 43  ["CH", ["SH", "C
1d50: 22 2c 20 22 53 53 22 5d 5d 2c 0a 20 20 20 20 20  ", "SS"]],.     
1d60: 20 20 20 5b 22 63 74 22 2c 20 5b 22 78 22 2c 20     ["ct", ["x", 
1d70: 22 63 63 22 5d 5d 2c 0a 20 20 20 20 20 20 20 20  "cc"]],.        
1d80: 5b 22 43 54 22 2c 20 5b 22 58 22 2c 20 22 43 43  ["CT", ["X", "CC
1d90: 22 5d 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 6f  "]],.        ["o
1da0: 61 22 2c 20 5b 22 6f 69 22 2c 5d 5d 2c 0a 20 20  a", ["oi",]],.  
1db0: 20 20 20 20 20 20 5b 22 4f 41 22 2c 20 5b 22 4f        ["OA", ["O
1dc0: 49 22 2c 5d 5d 2c 0a 20 20 20 20 20 20 20 20 5b  I",]],.        [
1dd0: 22 6f 65 22 2c 20 5b 22 c5 93 22 2c 5d 5d 2c 0a  "oe", ["..",]],.
1de0: 20 20 20 20 20 20 20 20 5b 22 4f 45 22 2c 20 5b          ["OE", [
1df0: 22 c5 92 22 2c 5d 5d 2c 0a 20 20 20 20 20 20 20  "..",]],.       
1e00: 20 5b 22 6f 69 22 2c 20 5b 22 6f 61 22 2c 20 22   ["oi", ["oa", "
1e10: 6f 69 65 22 5d 5d 2c 0a 20 20 20 20 20 20 20 20  oie"]],.        
1e20: 5b 22 4f 49 22 2c 20 5b 22 4f 41 22 2c 20 22 4f  ["OI", ["OA", "O
1e30: 49 45 22 5d 5d 2c 0a 20 20 20 20 20 20 20 20 5b  IE"]],.        [
1e40: 22 70 68 22 2c 20 5b 22 66 22 2c 5d 5d 2c 0a 20  "ph", ["f",]],. 
1e50: 20 20 20 20 20 20 20 5b 22 50 48 22 2c 20 5b 22         ["PH", ["
1e60: 46 22 2c 5d 5d 2c 0a 20 20 20 20 20 20 20 20 5b  F",]],.        [
1e70: 22 71 75 22 2c 20 5b 22 71 22 2c 20 22 63 71 22  "qu", ["q", "cq"
1e80: 2c 20 22 63 6b 22 2c 20 22 63 22 2c 20 22 6b 22  , "ck", "c", "k"
1e90: 5d 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 51 55  ]],.        ["QU
1ea0: 22 2c 20 5b 22 51 22 2c 20 22 43 51 22 2c 20 22  ", ["Q", "CQ", "
1eb0: 43 4b 22 2c 20 22 43 22 2c 20 22 4b 22 5d 5d 2c  CK", "C", "K"]],
1ec0: 0a 20 20 20 20 20 20 20 20 5b 22 73 73 22 2c 20  .        ["ss", 
1ed0: 5b 22 63 22 2c 20 22 c3 a7 22 5d 5d 2c 0a 20 20  ["c", ".."]],.  
1ee0: 20 20 20 20 20 20 5b 22 53 53 22 2c 20 5b 22 43        ["SS", ["C
1ef0: 22 2c 20 22 c3 87 22 5d 5d 2c 0a 20 20 20 20 20  ", ".."]],.     
1f00: 20 20 20 5b 22 75 6e 22 2c 20 5b 22 65 69 6e 22     ["un", ["ein"
1f10: 2c 5d 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 55  ,]],.        ["U
1f20: 4e 22 2c 20 5b 22 45 49 4e 22 2c 5d 5d 2c 0a 20  N", ["EIN",]],. 
1f30: 20 20 20 5d 29 2c 0a 0a 20 20 20 20 2f 2f 20 45     ]),..    // E
1f40: 6e 64 20 6f 66 20 77 6f 72 64 0a 20 20 20 20 64  nd of word.    d
1f50: 46 69 6e 61 6c 31 3a 20 6e 65 77 20 4d 61 70 28  Final1: new Map(
1f60: 5b 0a 20 20 20 20 20 20 20 20 5b 22 61 22 2c 20  [.        ["a", 
1f70: 5b 22 61 73 22 2c 20 22 61 74 22 2c 20 22 61 6e  ["as", "at", "an
1f80: 74 22 2c 20 22 61 68 22 5d 5d 2c 0a 20 20 20 20  t", "ah"]],.    
1f90: 20 20 20 20 5b 22 41 22 2c 20 5b 22 41 53 22 2c      ["A", ["AS",
1fa0: 20 22 41 54 22 2c 20 22 41 4e 54 22 2c 20 22 41   "AT", "ANT", "A
1fb0: 48 22 5d 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22  H"]],.        ["
1fc0: 63 22 2c 20 5b 22 63 68 22 2c 5d 5d 2c 0a 20 20  c", ["ch",]],.  
1fd0: 20 20 20 20 20 20 5b 22 43 22 2c 20 5b 22 43 48        ["C", ["CH
1fe0: 22 2c 5d 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22  ",]],.        ["
1ff0: 65 22 2c 20 5b 22 65 74 22 2c 20 22 65 72 22 2c  e", ["et", "er",
2000: 20 22 65 74 73 22 2c 20 22 c3 a9 65 22 2c 20 22   "ets", "..e", "
2010: 65 7a 22 2c 20 22 61 69 22 2c 20 22 61 69 73 22  ez", "ai", "ais"
2020: 2c 20 22 61 69 74 22 2c 20 22 65 6e 74 22 2c 20  , "ait", "ent", 
2030: 22 65 68 22 5d 5d 2c 0a 20 20 20 20 20 20 20 20  "eh"]],.        
2040: 5b 22 45 22 2c 20 5b 22 45 54 22 2c 20 22 45 52  ["E", ["ET", "ER
2050: 22 2c 20 22 45 54 53 22 2c 20 22 c3 89 45 22 2c  ", "ETS", "..E",
2060: 20 22 45 5a 22 2c 20 22 41 49 22 2c 20 22 41 49   "EZ", "AI", "AI
2070: 53 22 2c 20 22 41 49 54 22 2c 20 22 45 4e 54 22  S", "AIT", "ENT"
2080: 2c 20 22 45 48 22 5d 5d 2c 0a 20 20 20 20 20 20  , "EH"]],.      
2090: 20 20 5b 22 c3 a9 22 2c 20 5b 22 65 74 22 2c 20    ["..", ["et", 
20a0: 22 65 72 22 2c 20 22 65 74 73 22 2c 20 22 c3 a9  "er", "ets", "..
20b0: 65 22 2c 20 22 65 7a 22 2c 20 22 61 69 22 2c 20  e", "ez", "ai", 
20c0: 22 61 69 73 22 2c 20 22 61 69 74 22 5d 5d 2c 0a  "ais", "ait"]],.
20d0: 20 20 20 20 20 20 20 20 5b 22 c3 89 22 2c 20 5b          ["..", [
20e0: 22 45 54 22 2c 20 22 45 52 22 2c 20 22 45 54 53  "ET", "ER", "ETS
20f0: 22 2c 20 22 c3 89 45 22 2c 20 22 45 5a 22 2c 20  ", "..E", "EZ", 
2100: 22 41 49 22 2c 20 22 41 49 53 22 2c 20 22 41 49  "AI", "AIS", "AI
2110: 54 22 5d 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22  T"]],.        ["
2120: c3 a8 22 2c 20 5b 22 65 74 22 2c 20 22 65 72 22  ..", ["et", "er"
2130: 2c 20 22 65 74 73 22 2c 20 22 c3 a9 65 22 2c 20  , "ets", "..e", 
2140: 22 65 7a 22 2c 20 22 61 69 22 2c 20 22 61 69 73  "ez", "ai", "ais
2150: 22 2c 20 22 61 69 74 22 5d 5d 2c 0a 20 20 20 20  ", "ait"]],.    
2160: 20 20 20 20 5b 22 c3 88 22 2c 20 5b 22 45 54 22      ["..", ["ET"
2170: 2c 20 22 45 52 22 2c 20 22 45 54 53 22 2c 20 22  , "ER", "ETS", "
2180: c3 89 45 22 2c 20 22 45 5a 22 2c 20 22 41 49 22  ..E", "EZ", "AI"
2190: 2c 20 22 41 49 53 22 2c 20 22 41 49 54 22 5d 5d  , "AIS", "AIT"]]
21a0: 2c 0a 20 20 20 20 20 20 20 20 5b 22 c3 aa 22 2c  ,.        ["..",
21b0: 20 5b 22 65 74 22 2c 20 22 65 72 22 2c 20 22 65   ["et", "er", "e
21c0: 74 73 22 2c 20 22 c3 a9 65 22 2c 20 22 65 7a 22  ts", "..e", "ez"
21d0: 2c 20 22 61 69 22 2c 20 22 61 69 73 22 2c 20 22  , "ai", "ais", "
21e0: 61 69 74 22 5d 5d 2c 0a 20 20 20 20 20 20 20 20  ait"]],.        
21f0: 5b 22 c3 8a 22 2c 20 5b 22 45 54 22 2c 20 22 45  ["..", ["ET", "E
2200: 52 22 2c 20 22 45 54 53 22 2c 20 22 c3 89 45 22  R", "ETS", "..E"
2210: 2c 20 22 45 5a 22 2c 20 22 41 49 22 2c 20 22 41  , "EZ", "AI", "A
2220: 49 53 22 2c 20 22 41 49 54 22 5d 5d 2c 0a 20 20  IS", "AIT"]],.  
2230: 20 20 20 20 20 20 5b 22 c3 ab 22 2c 20 5b 22 65        ["..", ["e
2240: 74 22 2c 20 22 65 72 22 2c 20 22 65 74 73 22 2c  t", "er", "ets",
2250: 20 22 c3 a9 65 22 2c 20 22 65 7a 22 2c 20 22 61   "..e", "ez", "a
2260: 69 22 2c 20 22 61 69 73 22 2c 20 22 61 69 74 22  i", "ais", "ait"
2270: 5d 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 c3 8b  ]],.        ["..
2280: 22 2c 20 5b 22 45 54 22 2c 20 22 45 52 22 2c 20  ", ["ET", "ER", 
2290: 22 45 54 53 22 2c 20 22 c3 89 45 22 2c 20 22 45  "ETS", "..E", "E
22a0: 5a 22 2c 20 22 41 49 22 2c 20 22 41 49 53 22 2c  Z", "AI", "AIS",
22b0: 20 22 41 49 54 22 5d 5d 2c 0a 20 20 20 20 20 20   "AIT"]],.      
22c0: 20 20 5b 22 67 22 2c 20 5b 22 67 68 22 2c 5d 5d    ["g", ["gh",]]
22d0: 2c 0a 20 20 20 20 20 20 20 20 5b 22 47 22 2c 20  ,.        ["G", 
22e0: 5b 22 47 48 22 2c 5d 5d 2c 0a 20 20 20 20 20 20  ["GH",]],.      
22f0: 20 20 5b 22 69 22 2c 20 5b 22 69 73 22 2c 20 22    ["i", ["is", "
2300: 69 74 22 2c 20 22 69 65 22 2c 20 22 69 6e 22 5d  it", "ie", "in"]
2310: 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 49 22 2c  ],.        ["I",
2320: 20 5b 22 49 53 22 2c 20 22 49 54 22 2c 20 22 49   ["IS", "IT", "I
2330: 45 22 2c 20 22 49 4e 22 5d 5d 2c 0a 20 20 20 20  E", "IN"]],.    
2340: 20 20 20 20 5b 22 6e 22 2c 20 5b 22 6e 74 22 2c      ["n", ["nt",
2350: 20 22 6e 64 22 2c 20 22 6e 73 22 2c 20 22 6e 68   "nd", "ns", "nh
2360: 22 5d 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 4e  "]],.        ["N
2370: 22 2c 20 5b 22 4e 54 22 2c 20 22 4e 44 22 2c 20  ", ["NT", "ND", 
2380: 22 4e 53 22 2c 20 22 4e 48 22 5d 5d 2c 0a 20 20  "NS", "NH"]],.  
2390: 20 20 20 20 20 20 5b 22 6f 22 2c 20 5b 22 61 75        ["o", ["au
23a0: 74 22 2c 20 22 6f 74 22 2c 20 22 6f 73 22 5d 5d  t", "ot", "os"]]
23b0: 2c 0a 20 20 20 20 20 20 20 20 5b 22 4f 22 2c 20  ,.        ["O", 
23c0: 5b 22 41 55 54 22 2c 20 22 4f 54 22 2c 20 22 4f  ["AUT", "OT", "O
23d0: 53 22 5d 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22  S"]],.        ["
23e0: c3 b4 22 2c 20 5b 22 61 75 74 22 2c 20 22 6f 74  ..", ["aut", "ot
23f0: 22 2c 20 22 6f 73 22 5d 5d 2c 0a 20 20 20 20 20  ", "os"]],.     
2400: 20 20 20 5b 22 c3 94 22 2c 20 5b 22 41 55 54 22     ["..", ["AUT"
2410: 2c 20 22 4f 54 22 2c 20 22 4f 53 22 5d 5d 2c 0a  , "OT", "OS"]],.
2420: 20 20 20 20 20 20 20 20 5b 22 c3 b6 22 2c 20 5b          ["..", [
2430: 22 61 75 74 22 2c 20 22 6f 74 22 2c 20 22 6f 73  "aut", "ot", "os
2440: 22 5d 5d 2c 0a 20 20 20 20 20 20 20 20 5b 22 c3  "]],.        [".
2450: 96 22 2c 20 5b 22 41 55 54 22 2c 20 22 4f 54 22  .", ["AUT", "OT"
2460: 2c 20 22 4f 53 22 5d 5d 2c 0a 20 20 20 20 20 20  , "OS"]],.      
2470: 20 20 5b 22 70 22 2c 20 5b 22 70 68 22 2c 5d 5d    ["p", ["ph",]]
2480: 2c 0a 20 20 20 20 20 20 20 20 5b 22 50 22 2c 20  ,.        ["P", 
2490: 5b 22 50 48 22 2c 5d 5d 2c 0a 20 20 20 20 20 20  ["PH",]],.      
24a0: 20 20 5b 22 73 22 2c 20 5b 22 73 68 22 2c 5d 5d    ["s", ["sh",]]
24b0: 2c 0a 20 20 20 20 20 20 20 20 5b 22 53 22 2c 20  ,.        ["S", 
24c0: 5b 22 53 48 22 2c 5d 5d 2c 0a 20 20 20 20 20 20  ["SH",]],.      
24d0: 20 20 5b 22 74 22 2c 20 5b 22 74 68 22 2c 5d 5d    ["t", ["th",]]
24e0: 2c 0a 20 20 20 20 20 20 20 20 5b 22 54 22 2c 20  ,.        ["T", 
24f0: 5b 22 54 48 22 2c 5d 5d 2c 0a 20 20 20 20 20 20  ["TH",]],.      
2500: 20 20 5b 22 75 22 2c 20 5b 22 75 74 22 2c 20 22    ["u", ["ut", "
2510: 75 73 22 2c 20 22 75 68 22 5d 5d 2c 0a 20 20 20  us", "uh"]],.   
2520: 20 20 20 20 20 5b 22 55 22 2c 20 5b 22 55 54 22       ["U", ["UT"
2530: 2c 20 22 55 53 22 2c 20 22 55 48 22 5d 5d 2c 0a  , "US", "UH"]],.
2540: 20 20 20 20 5d 29 2c 0a 0a 20 20 20 20 64 46 69      ]),..    dFi
2550: 6e 61 6c 32 3a 20 6e 65 77 20 4d 61 70 28 5b 0a  nal2: new Map([.
2560: 20 20 20 20 20 20 20 20 5b 22 61 69 22 2c 20 5b          ["ai", [
2570: 22 61 69 65 6e 74 22 2c 20 22 61 69 73 22 2c 20  "aient", "ais", 
2580: 22 65 74 22 5d 5d 2c 0a 20 20 20 20 20 20 20 20  "et"]],.        
2590: 5b 22 41 49 22 2c 20 5b 22 41 49 45 4e 54 22 2c  ["AI", ["AIENT",
25a0: 20 22 41 49 53 22 2c 20 22 45 54 22 5d 5d 2c 0a   "AIS", "ET"]],.
25b0: 20 20 20 20 20 20 20 20 5b 22 61 6e 22 2c 20 5b          ["an", [
25c0: 22 61 6e 74 22 2c 20 22 65 6e 74 22 5d 5d 2c 0a  "ant", "ent"]],.
25d0: 20 20 20 20 20 20 20 20 5b 22 41 4e 22 2c 20 5b          ["AN", [
25e0: 22 41 4e 54 22 2c 20 22 45 4e 54 22 5d 5d 2c 0a  "ANT", "ENT"]],.
25f0: 20 20 20 20 20 20 20 20 5b 22 65 6e 22 2c 20 5b          ["en", [
2600: 22 65 6e 74 22 2c 20 22 61 6e 74 22 5d 5d 2c 0a  "ent", "ant"]],.
2610: 20 20 20 20 20 20 20 20 5b 22 45 4e 22 2c 20 5b          ["EN", [
2620: 22 45 4e 54 22 2c 20 22 41 4e 54 22 5d 5d 2c 0a  "ENT", "ANT"]],.
2630: 20 20 20 20 20 20 20 20 5b 22 65 69 22 2c 20 5b          ["ei", [
2640: 22 61 69 74 22 2c 20 22 61 69 73 22 5d 5d 2c 0a  "ait", "ais"]],.
2650: 20 20 20 20 20 20 20 20 5b 22 45 49 22 2c 20 5b          ["EI", [
2660: 22 41 49 54 22 2c 20 22 41 49 53 22 5d 5d 2c 0a  "AIT", "AIS"]],.
2670: 20 20 20 20 20 20 20 20 5b 22 6f 6e 22 2c 20 5b          ["on", [
2680: 22 6f 6e 73 22 2c 20 22 6f 6e 74 22 5d 5d 2c 0a  "ons", "ont"]],.
2690: 20 20 20 20 20 20 20 20 5b 22 4f 4e 22 2c 20 5b          ["ON", [
26a0: 22 4f 4e 53 22 2c 20 22 4f 4e 54 22 5d 5d 2c 0a  "ONS", "ONT"]],.
26b0: 20 20 20 20 20 20 20 20 5b 22 6f 69 22 2c 20 5b          ["oi", [
26c0: 22 6f 69 73 22 2c 20 22 6f 69 74 22 2c 20 22 6f  "ois", "oit", "o
26d0: 69 78 22 5d 5d 2c 0a 20 20 20 20 20 20 20 20 5b  ix"]],.        [
26e0: 22 4f 49 22 2c 20 5b 22 4f 49 53 22 2c 20 22 4f  "OI", ["OIS", "O
26f0: 49 54 22 2c 20 22 4f 49 58 22 5d 5d 2c 0a 20 20  IT", "OIX"]],.  
2700: 20 20 5d 29 2c 0a 0a 0a 20 20 20 20 2f 2f 20 50    ]),...    // P
2710: 72 c3 a9 66 69 78 65 73 20 65 74 20 73 75 66 66  r..fixes et suff
2720: 69 78 65 73 0a 20 20 20 20 61 50 66 78 31 3a 20  ixes.    aPfx1: 
2730: 6e 65 77 20 53 65 74 28 5b 0a 20 20 20 20 20 20  new Set([.      
2740: 20 20 22 61 6e 74 69 22 2c 20 22 61 72 63 68 69    "anti", "archi
2750: 22 2c 20 22 63 6f 6e 74 72 65 22 2c 20 22 68 79  ", "contre", "hy
2760: 70 65 72 22 2c 20 22 6d c3 a9 22 2c 20 22 6d c3  per", "m..", "m.
2770: a9 74 61 22 2c 20 22 69 6d 22 2c 20 22 69 6e 22  .ta", "im", "in"
2780: 2c 20 22 69 72 22 2c 20 22 70 61 72 22 2c 20 22  , "ir", "par", "
2790: 70 72 6f 74 6f 22 2c 0a 20 20 20 20 20 20 20 20  proto",.        
27a0: 22 70 73 65 75 64 6f 22 2c 20 22 70 72 c3 a9 22  "pseudo", "pr.."
27b0: 2c 20 22 72 65 22 2c 20 22 72 c3 a9 22 2c 20 22  , "re", "r..", "
27c0: 73 61 6e 73 22 2c 20 22 73 6f 75 73 22 2c 20 22  sans", "sous", "
27d0: 73 75 70 72 61 22 2c 20 22 73 75 72 22 2c 20 22  supra", "sur", "
27e0: 75 6c 74 72 61 22 0a 20 20 20 20 5d 29 2c 0a 0a  ultra".    ]),..
27f0: 20 20 20 20 61 50 66 78 32 3a 20 6e 65 77 20 53      aPfx2: new S
2800: 65 74 28 5b 0a 20 20 20 20 20 20 20 20 22 62 65  et([.        "be
2810: 6c 67 6f 22 2c 20 22 66 72 61 6e 63 6f 22 2c 20  lgo", "franco", 
2820: 22 67 c3 a9 6e 69 74 6f 22 2c 20 22 67 79 6e c3  "g..nito", "gyn.
2830: a9 63 6f 22 2c 20 22 6d c3 a9 64 69 63 6f 22 2c  .co", "m..dico",
2840: 20 22 72 75 73 73 6f 22 0a 20 20 20 20 5d 29 2c   "russo".    ]),
2850: 0a 0a 0a 20 20 20 20 63 75 74 3a 20 66 75 6e 63  ...    cut: func
2860: 74 69 6f 6e 20 28 73 57 6f 72 64 29 20 7b 0a 20  tion (sWord) {. 
2870: 20 20 20 20 20 20 20 2f 2f 20 72 65 74 75 72 6e         // return
2880: 73 20 61 6e 20 61 72 72 79 20 6f 66 20 73 74 72  s an arry of str
2890: 69 6e 67 73 20 28 70 72 65 66 69 78 2c 20 74 72  ings (prefix, tr
28a0: 69 6d 65 64 5f 77 6f 72 64 2c 20 73 75 66 66 69  imed_word, suffi
28b0: 78 29 0a 20 20 20 20 20 20 20 20 6c 65 74 20 6d  x).        let m
28c0: 20 3d 20 2f 5e 28 5b 61 2d 7a 41 2d 5a c3 a0 2d   = /^([a-zA-Z..-
28d0: c3 b6 c3 80 2d c3 96 30 2d 39 5f c3 b8 2d c3 bf  ....-..0-9_..-..
28e0: c3 98 2d c3 9f c4 80 2d ca af ef ac 81 2d ef ac  ..-....-.....-..
28f0: 86 5d 2b 29 28 2d 28 3f 3a 74 2d 7c 29 28 3f 3a  .]+)(-(?:t-|)(?:
2900: 69 6c 73 3f 7c 65 6c 6c 65 73 7c 6f 6e 7c 6a 65  ils?|elles|on|je
2910: 7c 74 75 7c 6e 6f 75 73 7c 76 6f 75 73 29 24 29  |tu|nous|vous)$)
2920: 2f 2e 65 78 65 63 28 73 57 6f 72 64 29 3b 0a 20  /.exec(sWord);. 
2930: 20 20 20 20 20 20 20 69 66 20 28 6d 29 20 7b 0a         if (m) {.
2940: 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75              retu
2950: 72 6e 20 5b 22 22 2c 20 6d 5b 31 5d 2c 20 6d 5b  rn ["", m[1], m[
2960: 32 5d 5d 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20  2]];.        }. 
2970: 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 5b 22         return ["
2980: 22 2c 20 73 57 6f 72 64 2c 20 22 22 5d 3b 0a 20  ", sWord, ""];. 
2990: 20 20 20 7d 2c 0a 0a 20 20 20 20 2f 2f 20 4f 74     },..    // Ot
29a0: 68 65 72 20 66 75 6e 63 74 69 6f 6e 73 0a 20 20  her functions.  
29b0: 20 20 66 69 6c 74 65 72 53 75 67 67 3a 20 66 75    filterSugg: fu
29c0: 6e 63 74 69 6f 6e 20 28 61 53 75 67 67 29 20 7b  nction (aSugg) {
29d0: 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20  .        return 
29e0: 61 53 75 67 67 2e 66 69 6c 74 65 72 28 28 73 53  aSugg.filter((sS
29f0: 75 67 67 29 20 3d 3e 20 7b 20 72 65 74 75 72 6e  ugg) => { return
2a00: 20 21 73 53 75 67 67 2e 65 6e 64 73 57 69 74 68   !sSugg.endsWith
2a10: 28 22 c3 a8 22 29 20 26 26 20 21 73 53 75 67 67  ("..") && !sSugg
2a20: 2e 65 6e 64 73 57 69 74 68 28 22 c3 88 22 29 3b  .endsWith("..");
2a30: 20 7d 29 3b 0a 20 20 20 20 7d 0a 0a 7d 0a         });.    }..}.