jsmigemo 0.4.2 → 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -2
- package/bin/jsmigemo-cli.mjs +0 -0
- package/dist/jsmigemo.cjs +12 -17
- package/dist/jsmigemo.js +12 -17
- package/dist/jsmigemo.min.cjs +1 -2
- package/dist/jsmigemo.min.js +1 -2
- package/dist/jsmigemo.min.mjs +1 -2
- package/dist/jsmigemo.mjs +12 -15
- package/package.json +12 -10
- package/a.txt +0 -1794
- package/dist/jsmigemo.cjs.map +0 -1
- package/dist/jsmigemo.js.map +0 -1
- package/dist/jsmigemo.min.cjs.map +0 -1
- package/dist/jsmigemo.min.js.map +0 -1
- package/dist/jsmigemo.min.mjs.map +0 -1
- package/dist/jsmigemo.mjs.map +0 -1
package/README.md
CHANGED
|
@@ -5,6 +5,31 @@
|
|
|
5
5
|
|
|
6
6
|
JavaScriptでMigemoを利用するためのライブラリ
|
|
7
7
|
|
|
8
|
+
## Install from npm
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
$ npm install jsmigemo
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Install from CDN
|
|
15
|
+
|
|
16
|
+
`https://cdn.jsdelivr.net/npm/jsmigemo/dist/<filename>` の `<filename>` の部分に、用途に応じて以下のファイル名を指定してください。
|
|
17
|
+
|
|
18
|
+
| Format | Default | Minified |
|
|
19
|
+
|:------:|---------|----------|
|
|
20
|
+
| ESModule | jsmigemo.mjs | jsmigemo.min.mjs |
|
|
21
|
+
| CommonJS | jsmigemo.cjs | jsmigemo.min.cjs |
|
|
22
|
+
| IIFE | jsmigemo.js | jsmigemo.min.js |
|
|
23
|
+
|
|
24
|
+
DefaultとMinifiedの違いは以下です。
|
|
25
|
+
- Defaultは、ソースコードを1つにまとめただけの、変数名もそのまま残っているJSファイルです。開発時にはこちらをご利用ください。
|
|
26
|
+
- Minifiedは、ファイルサイズを小さくするための様々な処理をしたJSファイルです。配布時にはこちらをご利用ください。
|
|
27
|
+
|
|
28
|
+
ESModuleとCommonJS、IIFEの違いは以下です。
|
|
29
|
+
- ESModuleは、最近のバンドラやNode.JS、モダンブラウザなど幅広く利用できるフォーマットです。
|
|
30
|
+
- CommonJSは、browserifyやwebpack1のような古いバンドラでの利用を意図したフォーマットです。
|
|
31
|
+
- IIFEは、レガシーブラウザやESModuleの利用できない環境(例えばローカルのJSファイル)での利用を意図したフォーマットです。
|
|
32
|
+
|
|
8
33
|
## HOW TO USE
|
|
9
34
|
|
|
10
35
|
### CLI
|
|
@@ -23,7 +48,7 @@ const migemo = require('jsmigemo');
|
|
|
23
48
|
const path = require('path');
|
|
24
49
|
const fs = require('fs');
|
|
25
50
|
|
|
26
|
-
const buffer = fs.readFileSync(
|
|
51
|
+
const buffer = fs.readFileSync('migemo-compact-dict');
|
|
27
52
|
const dict = new migemo.CompactDictionary(buffer.buffer);
|
|
28
53
|
const m = new migemo.Migemo();
|
|
29
54
|
m.setDict(dict);
|
|
@@ -70,7 +95,7 @@ queryメソッドはステートレスのため、複数のスレッドから同
|
|
|
70
95
|
## 辞書ファイルの生成
|
|
71
96
|
|
|
72
97
|
```shell
|
|
73
|
-
> node bin/jsmigemo-dict.
|
|
98
|
+
> node bin/jsmigemo-dict.mjs <text-dict-file> <compact-dict-file>
|
|
74
99
|
```
|
|
75
100
|
|
|
76
101
|
`<text-dict-file>` は、C/Miemoで使われているテキスト形式の辞書ファイルです。
|
package/bin/jsmigemo-cli.mjs
CHANGED
|
File without changes
|
package/dist/jsmigemo.cjs
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
3
|
class BitList {
|
|
6
4
|
constructor(size) {
|
|
7
5
|
if (size == undefined) {
|
|
@@ -672,18 +670,18 @@ class LOUDSTrie {
|
|
|
672
670
|
if (index <= 0 || this.edges.length <= index) {
|
|
673
671
|
throw new RangeError();
|
|
674
672
|
}
|
|
675
|
-
|
|
673
|
+
const sb = new Array();
|
|
676
674
|
while (index > 1) {
|
|
677
675
|
sb.push(this.edges[index]);
|
|
678
676
|
index = this.parent(index);
|
|
679
677
|
}
|
|
680
|
-
return
|
|
678
|
+
return String.fromCharCode(...sb.reverse());
|
|
681
679
|
}
|
|
682
680
|
parent(x) {
|
|
683
681
|
return this.bitVector.rank(this.bitVector.select(x, true), false);
|
|
684
682
|
}
|
|
685
683
|
firstChild(x) {
|
|
686
|
-
|
|
684
|
+
const y = this.bitVector.select(x, false) + 1;
|
|
687
685
|
if (this.bitVector.get(y)) {
|
|
688
686
|
return this.bitVector.rank(y, true) + 1;
|
|
689
687
|
}
|
|
@@ -692,20 +690,20 @@ class LOUDSTrie {
|
|
|
692
690
|
}
|
|
693
691
|
}
|
|
694
692
|
traverse(index, c) {
|
|
695
|
-
|
|
693
|
+
const firstChild = this.firstChild(index);
|
|
696
694
|
if (firstChild == -1) {
|
|
697
695
|
return -1;
|
|
698
696
|
}
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
697
|
+
const childStartBit = this.bitVector.select(firstChild, true);
|
|
698
|
+
const childEndBit = this.bitVector.nextClearBit(childStartBit);
|
|
699
|
+
const childSize = childEndBit - childStartBit;
|
|
700
|
+
const result = binarySearchUint16(this.edges, firstChild, firstChild + childSize, c);
|
|
703
701
|
return result >= 0 ? result : -1;
|
|
704
702
|
}
|
|
705
703
|
lookup(key) {
|
|
706
704
|
let nodeIndex = 1;
|
|
707
705
|
for (let i = 0; i < key.length; i++) {
|
|
708
|
-
|
|
706
|
+
const c = key.charCodeAt(i);
|
|
709
707
|
nodeIndex = this.traverse(nodeIndex, c);
|
|
710
708
|
if (nodeIndex == -1) {
|
|
711
709
|
break;
|
|
@@ -824,11 +822,9 @@ class CompactDictionary {
|
|
|
824
822
|
const size = valueEndPos - valueStartPos - 1;
|
|
825
823
|
if (size > 0) {
|
|
826
824
|
const offset = this.mappingBitVector.rank(valueStartPos, false);
|
|
827
|
-
|
|
828
|
-
for (let i = 0; i < result.length; i++) {
|
|
825
|
+
for (let i = 0; i < size; i++) {
|
|
829
826
|
yield this.valueTrie.reverseLookup(this.mapping[valueStartPos - offset + i]);
|
|
830
827
|
}
|
|
831
|
-
return result;
|
|
832
828
|
}
|
|
833
829
|
}
|
|
834
830
|
}
|
|
@@ -1343,12 +1339,12 @@ class TernaryRegexGenerator {
|
|
|
1343
1339
|
}
|
|
1344
1340
|
}
|
|
1345
1341
|
|
|
1346
|
-
|
|
1342
|
+
let RomajiPredictiveResult$1 = class RomajiPredictiveResult {
|
|
1347
1343
|
constructor(prefix, suffixes) {
|
|
1348
1344
|
this.prefix = prefix;
|
|
1349
1345
|
this.suffixes = suffixes;
|
|
1350
1346
|
}
|
|
1351
|
-
}
|
|
1347
|
+
};
|
|
1352
1348
|
class RomajiProcessor2 {
|
|
1353
1349
|
constructor(trie, hiraganaList, remainList) {
|
|
1354
1350
|
this.trie = trie;
|
|
@@ -1998,4 +1994,3 @@ exports.numberOfTrailingZeros = numberOfTrailingZeros;
|
|
|
1998
1994
|
exports.romajiToHiragana = romajiToHiragana;
|
|
1999
1995
|
exports.romajiToHiraganaPredictively = romajiToHiraganaPredictively;
|
|
2000
1996
|
exports.zen2han_conv = zen2han_conv;
|
|
2001
|
-
//# sourceMappingURL=jsmigemo.cjs.map
|
package/dist/jsmigemo.js
CHANGED
|
@@ -671,18 +671,18 @@ var jsmigemo = (function (exports) {
|
|
|
671
671
|
if (index <= 0 || this.edges.length <= index) {
|
|
672
672
|
throw new RangeError();
|
|
673
673
|
}
|
|
674
|
-
|
|
674
|
+
const sb = new Array();
|
|
675
675
|
while (index > 1) {
|
|
676
676
|
sb.push(this.edges[index]);
|
|
677
677
|
index = this.parent(index);
|
|
678
678
|
}
|
|
679
|
-
return
|
|
679
|
+
return String.fromCharCode(...sb.reverse());
|
|
680
680
|
}
|
|
681
681
|
parent(x) {
|
|
682
682
|
return this.bitVector.rank(this.bitVector.select(x, true), false);
|
|
683
683
|
}
|
|
684
684
|
firstChild(x) {
|
|
685
|
-
|
|
685
|
+
const y = this.bitVector.select(x, false) + 1;
|
|
686
686
|
if (this.bitVector.get(y)) {
|
|
687
687
|
return this.bitVector.rank(y, true) + 1;
|
|
688
688
|
}
|
|
@@ -691,20 +691,20 @@ var jsmigemo = (function (exports) {
|
|
|
691
691
|
}
|
|
692
692
|
}
|
|
693
693
|
traverse(index, c) {
|
|
694
|
-
|
|
694
|
+
const firstChild = this.firstChild(index);
|
|
695
695
|
if (firstChild == -1) {
|
|
696
696
|
return -1;
|
|
697
697
|
}
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
698
|
+
const childStartBit = this.bitVector.select(firstChild, true);
|
|
699
|
+
const childEndBit = this.bitVector.nextClearBit(childStartBit);
|
|
700
|
+
const childSize = childEndBit - childStartBit;
|
|
701
|
+
const result = binarySearchUint16(this.edges, firstChild, firstChild + childSize, c);
|
|
702
702
|
return result >= 0 ? result : -1;
|
|
703
703
|
}
|
|
704
704
|
lookup(key) {
|
|
705
705
|
let nodeIndex = 1;
|
|
706
706
|
for (let i = 0; i < key.length; i++) {
|
|
707
|
-
|
|
707
|
+
const c = key.charCodeAt(i);
|
|
708
708
|
nodeIndex = this.traverse(nodeIndex, c);
|
|
709
709
|
if (nodeIndex == -1) {
|
|
710
710
|
break;
|
|
@@ -823,11 +823,9 @@ var jsmigemo = (function (exports) {
|
|
|
823
823
|
const size = valueEndPos - valueStartPos - 1;
|
|
824
824
|
if (size > 0) {
|
|
825
825
|
const offset = this.mappingBitVector.rank(valueStartPos, false);
|
|
826
|
-
|
|
827
|
-
for (let i = 0; i < result.length; i++) {
|
|
826
|
+
for (let i = 0; i < size; i++) {
|
|
828
827
|
yield this.valueTrie.reverseLookup(this.mapping[valueStartPos - offset + i]);
|
|
829
828
|
}
|
|
830
|
-
return result;
|
|
831
829
|
}
|
|
832
830
|
}
|
|
833
831
|
}
|
|
@@ -1342,12 +1340,12 @@ var jsmigemo = (function (exports) {
|
|
|
1342
1340
|
}
|
|
1343
1341
|
}
|
|
1344
1342
|
|
|
1345
|
-
|
|
1343
|
+
let RomajiPredictiveResult$1 = class RomajiPredictiveResult {
|
|
1346
1344
|
constructor(prefix, suffixes) {
|
|
1347
1345
|
this.prefix = prefix;
|
|
1348
1346
|
this.suffixes = suffixes;
|
|
1349
1347
|
}
|
|
1350
|
-
}
|
|
1348
|
+
};
|
|
1351
1349
|
class RomajiProcessor2 {
|
|
1352
1350
|
constructor(trie, hiraganaList, remainList) {
|
|
1353
1351
|
this.trie = trie;
|
|
@@ -1998,9 +1996,6 @@ var jsmigemo = (function (exports) {
|
|
|
1998
1996
|
exports.romajiToHiraganaPredictively = romajiToHiraganaPredictively;
|
|
1999
1997
|
exports.zen2han_conv = zen2han_conv;
|
|
2000
1998
|
|
|
2001
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
2002
|
-
|
|
2003
1999
|
return exports;
|
|
2004
2000
|
|
|
2005
2001
|
})({});
|
|
2006
|
-
//# sourceMappingURL=jsmigemo.js.map
|
package/dist/jsmigemo.min.cjs
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});class e{constructor(e){null==e?(this.words=new Uint32Array(8),this.size=0):(this.words=new Uint32Array(e+31>>5),this.size=e)}add(e){if(this.words.length<this.size+1+31>>5){const e=new Uint32Array(2*this.words.length);e.set(this.words,0),this.words=e}this.set(this.size,e),this.size++}set(e,t){if(this.size<e)throw new Error;t?this.words[e>>5]|=1<<(31&e):this.words[e>>5]&=~(1<<(31&e))}get(e){if(this.size<e)throw new Error;return 1==(this.words[e>>5]>>(31&e)&1)}}function t(e,t,s,n){let r=t,i=s-1;for(;r<=i;){const t=r+i>>>1,s=e[t];if(s<n)r=t+1;else{if(!(s>n))return t;i=t-1}}return-(r+1)}function s(e,t,s,n){let r=t,i=s-1;for(;r<=i;){const t=r+i>>>1,s=e[t];if(s<n)r=t+1;else{if(!(s>n))return t;i=t-1}}return-(r+1)}function n(e){return e=(e=(858993459&(e-=e>>>1&1431655765))+(e>>>2&858993459))+(e>>>4)&252645135,e+=e>>>8,63&(e+=e>>>16)}function r(e){let t,s;if(0==e)return 64;let n=63;return s=e,0!=s?(n-=32,t=s):t=e>>>32,s=t<<16,0!=s&&(n-=16,t=s),s=t<<8,0!=s&&(n-=8,t=s),s=t<<4,0!=s&&(n-=4,t=s),s=t<<2,0!=s&&(n-=2,t=s),n-(t<<1>>>31)}class i{constructor(e,t){const s=2*(t+63>>6);if(s!=e.length)throw new Error(`expected: ${s} actual: ${e.length}`);this.words=e,this.sizeInBits=t,this.lb=new Uint32Array(t+511>>>9),this.sb=new Uint16Array(8*this.lb.length);let r=0,i=0;for(let e=0;e<this.sb.length;e++){const t=e<this.words.length>>>1?n(this.words[2*e])+n(this.words[2*e+1]):0;this.sb[e]=i,i+=t,7==(7&e)&&(this.lb[e>>>3]=r,r+=i,i=0)}}rank(e,t){if(e<0&&this.sizeInBits<=e)throw new RangeError;let s=this.sb[e>>>6]+this.lb[e>>>9];(63&e)>=32&&(s+=n(this.words[e>>>5&4294967294]));const r=2147483647>>>31-(31&e);return s+=n(this.words[e>>>5]&r),t?s:e-s}select(e,t){const s=this.lowerBoundBinarySearchLB(e,t)-1;if(-1==s)return 0;const r=e-(t?this.lb[s]:512*s-this.lb[s]),i=this.lowerBoundBinarySearchSB(r,8*s,8*s+8,t)-1;let o=r-(t?this.sb[i]:i%8*64-this.sb[i]),w=this.words[2*i],l=this.words[2*i+1];t||(w=~w,l=~l);const h=n(w);let a=0;for(o>h&&(w=l,o-=h,a=32);o>0;)o-=1&w,w>>>=1,a++;return 64*i+(a-1)}lowerBoundBinarySearchLB(e,t){let s=this.lb.length,n=-1;if(t)for(;s-n>1;){let t=s+n>>>1;this.lb[t]<e?n=t:s=t}else for(;s-n>1;){let t=s+n>>>1;512*t-this.lb[t]<e?n=t:s=t}return s}lowerBoundBinarySearchSB(e,t,s,n){let r=s,i=t-1;if(n)for(;r-i>1;){const t=r+i>>>1;this.sb[t]<e?i=t:r=t}else for(;r-i>1;){const t=r+i>>>1;64*(7&t)-this.sb[t]<e?i=t:r=t}return r}nextClearBit(e){let t=e>>5,s=~this.words[t]&4294967295<<e;for(;;){if(0!=s)return 32*t+r(s);if(++t==this.words.length)return-1;s=~this.words[t]}}size(){return this.sizeInBits}get(e){if(e<0&&this.sizeInBits<=e)throw new RangeError;return 1==(this.words[e>>>5]>>>(31&e)&1)}toString(){let e="";for(let t=0;t<this.sizeInBits;t++){e+=1==(this.words[t>>>6]>>>(63&t)&1)?"1":"0",63==(63&t)&&(e+=" ")}return e}}const o=new Map;o.set("!","!"),o.set('"',"”"),o.set("#","#"),o.set("$","$"),o.set("%","%"),o.set("&","&"),o.set("'","’"),o.set("(","("),o.set(")",")"),o.set("*","*"),o.set("+","+"),o.set(",",","),o.set("-","-"),o.set(".","."),o.set("/","/"),o.set("0","0"),o.set("1","1"),o.set("2","2"),o.set("3","3"),o.set("4","4"),o.set("5","5"),o.set("6","6"),o.set("7","7"),o.set("8","8"),o.set("9","9"),o.set(":",":"),o.set(";",";"),o.set("<","<"),o.set("=","="),o.set(">",">"),o.set("?","?"),o.set("@","@"),o.set("A","A"),o.set("B","B"),o.set("C","C"),o.set("D","D"),o.set("E","E"),o.set("F","F"),o.set("G","G"),o.set("H","H"),o.set("I","I"),o.set("J","J"),o.set("K","K"),o.set("L","L"),o.set("M","M"),o.set("N","N"),o.set("O","O"),o.set("P","P"),o.set("Q","Q"),o.set("R","R"),o.set("S","S"),o.set("T","T"),o.set("U","U"),o.set("V","V"),o.set("W","W"),o.set("X","X"),o.set("Y","Y"),o.set("Z","Z"),o.set("[","["),o.set("\\","¥"),o.set("]","]"),o.set("^","^"),o.set("_","_"),o.set("`","‘"),o.set("a","a"),o.set("b","b"),o.set("c","c"),o.set("d","d"),o.set("e","e"),o.set("f","f"),o.set("g","g"),o.set("h","h"),o.set("i","i"),o.set("j","j"),o.set("k","k"),o.set("l","l"),o.set("m","m"),o.set("n","n"),o.set("o","o"),o.set("p","p"),o.set("q","q"),o.set("r","r"),o.set("s","s"),o.set("t","t"),o.set("u","u"),o.set("v","v"),o.set("w","w"),o.set("x","x"),o.set("y","y"),o.set("z","z"),o.set("{","{"),o.set("|","|"),o.set("}","}"),o.set("~","~"),o.set("。","。"),o.set("「","「"),o.set("」","」"),o.set("、","、"),o.set("・","・"),o.set("ヲ","ヲ"),o.set("ァ","ァ"),o.set("ィ","ィ"),o.set("ゥ","ゥ"),o.set("ェ","ェ"),o.set("ォ","ォ"),o.set("ャ","ャ"),o.set("ュ","ュ"),o.set("ョ","ョ"),o.set("ッ","ッ"),o.set("ー","ー"),o.set("ア","ア"),o.set("イ","イ"),o.set("ウ","ウ"),o.set("エ","エ"),o.set("オ","オ"),o.set("カ","カ"),o.set("キ","キ"),o.set("ク","ク"),o.set("ケ","ケ"),o.set("コ","コ"),o.set("サ","サ"),o.set("シ","シ"),o.set("ス","ス"),o.set("セ","セ"),o.set("ソ","ソ"),o.set("タ","タ"),o.set("チ","チ"),o.set("ツ","ツ"),o.set("テ","テ"),o.set("ト","ト"),o.set("ナ","ナ"),o.set("ニ","ニ"),o.set("ヌ","ヌ"),o.set("ネ","ネ"),o.set("ノ","ノ"),o.set("ハ","ハ"),o.set("ヒ","ヒ"),o.set("フ","フ"),o.set("ヘ","ヘ"),o.set("ホ","ホ"),o.set("マ","マ"),o.set("ミ","ミ"),o.set("ム","ム"),o.set("メ","メ"),o.set("モ","モ"),o.set("ヤ","ヤ"),o.set("ユ","ユ"),o.set("ヨ","ヨ"),o.set("ラ","ラ"),o.set("リ","リ"),o.set("ル","ル"),o.set("レ","レ"),o.set("ロ","ロ"),o.set("ワ","ワ"),o.set("ン","ン"),o.set("゙","゛"),o.set("゚","゜");const w=new Map;function l(e){let t="";for(let s of e){let e=o.get(s);t+=null==e?s:e}return t}function h(e){let t="";for(let s of e){let e=w.get(s);t+=null==e?s:e}return t}function a(e){let t="";for(let s=0;s<e.length;s++){const n=e.charCodeAt(s);"ぁ".charCodeAt(0)<=n&&n<="ん".charCodeAt(0)?t+=String.fromCharCode(n-"ぁ".charCodeAt(0)+"ァ".charCodeAt(0)):t+=String.fromCharCode(n)}return t}w.set("!","!"),w.set("”",'"'),w.set("#","#"),w.set("$","$"),w.set("%","%"),w.set("&","&"),w.set("’","'"),w.set("(","("),w.set(")",")"),w.set("*","*"),w.set("+","+"),w.set(",",","),w.set("-","-"),w.set(".","."),w.set("/","/"),w.set("0","0"),w.set("1","1"),w.set("2","2"),w.set("3","3"),w.set("4","4"),w.set("5","5"),w.set("6","6"),w.set("7","7"),w.set("8","8"),w.set("9","9"),w.set(":",":"),w.set(";",";"),w.set("<","<"),w.set("=","="),w.set(">",">"),w.set("?","?"),w.set("@","@"),w.set("A","A"),w.set("B","B"),w.set("C","C"),w.set("D","D"),w.set("E","E"),w.set("F","F"),w.set("G","G"),w.set("H","H"),w.set("I","I"),w.set("J","J"),w.set("K","K"),w.set("L","L"),w.set("M","M"),w.set("N","N"),w.set("O","O"),w.set("P","P"),w.set("Q","Q"),w.set("R","R"),w.set("S","S"),w.set("T","T"),w.set("U","U"),w.set("V","V"),w.set("W","W"),w.set("X","X"),w.set("Y","Y"),w.set("Z","Z"),w.set("[","["),w.set("¥","\\"),w.set("]","]"),w.set("^","^"),w.set("_","_"),w.set("‘","`"),w.set("a","a"),w.set("b","b"),w.set("c","c"),w.set("d","d"),w.set("e","e"),w.set("f","f"),w.set("g","g"),w.set("h","h"),w.set("i","i"),w.set("j","j"),w.set("k","k"),w.set("l","l"),w.set("m","m"),w.set("n","n"),w.set("o","o"),w.set("p","p"),w.set("q","q"),w.set("r","r"),w.set("s","s"),w.set("t","t"),w.set("u","u"),w.set("v","v"),w.set("w","w"),w.set("x","x"),w.set("y","y"),w.set("z","z"),w.set("{","{"),w.set("|","|"),w.set("}","}"),w.set("~","~"),w.set("。","。"),w.set("「","「"),w.set("」","」"),w.set("、","、"),w.set("・","・"),w.set("ヲ","ヲ"),w.set("ァ","ァ"),w.set("ィ","ィ"),w.set("ゥ","ゥ"),w.set("ェ","ェ"),w.set("ォ","ォ"),w.set("ャ","ャ"),w.set("ュ","ュ"),w.set("ョ","ョ"),w.set("ッ","ッ"),w.set("ー","ー"),w.set("ア","ア"),w.set("イ","イ"),w.set("ウ","ウ"),w.set("エ","エ"),w.set("オ","オ"),w.set("カ","カ"),w.set("キ","キ"),w.set("ク","ク"),w.set("ケ","ケ"),w.set("コ","コ"),w.set("サ","サ"),w.set("シ","シ"),w.set("ス","ス"),w.set("セ","セ"),w.set("ソ","ソ"),w.set("タ","タ"),w.set("チ","チ"),w.set("ツ","ツ"),w.set("テ","テ"),w.set("ト","ト"),w.set("ナ","ナ"),w.set("ニ","ニ"),w.set("ヌ","ヌ"),w.set("ネ","ネ"),w.set("ノ","ノ"),w.set("ハ","ハ"),w.set("ヒ","ヒ"),w.set("フ","フ"),w.set("ヘ","ヘ"),w.set("ホ","ホ"),w.set("マ","マ"),w.set("ミ","ミ"),w.set("ム","ム"),w.set("メ","メ"),w.set("モ","モ"),w.set("ヤ","ヤ"),w.set("ユ","ユ"),w.set("ヨ","ヨ"),w.set("ラ","ラ"),w.set("リ","リ"),w.set("ル","ル"),w.set("レ","レ"),w.set("ロ","ロ"),w.set("ワ","ワ"),w.set("ン","ン"),w.set("゛","゙"),w.set("゜","゚"),w.set("ヴ","ヴ"),w.set("ガ","ガ"),w.set("ギ","ギ"),w.set("グ","グ"),w.set("ゲ","ゲ"),w.set("ゴ","ゴ"),w.set("ザ","ザ"),w.set("ジ","ジ"),w.set("ズ","ズ"),w.set("ゼ","ゼ"),w.set("ゾ","ゾ"),w.set("ダ","ダ"),w.set("ヂ","ヂ"),w.set("ヅ","ヅ"),w.set("デ","デ"),w.set("ド","ド"),w.set("バ","バ"),w.set("ビ","ビ"),w.set("ブ","ブ"),w.set("ベ","ベ"),w.set("ボ","ボ"),w.set("パ","パ"),w.set("ピ","ピ"),w.set("プ","プ"),w.set("ペ","ペ"),w.set("ポ","ポ");class c{constructor(e,t){this.bitVector=e,this.edges=t}reverseLookup(e){if(e<=0||this.edges.length<=e)throw new RangeError;let t=new Array;for(;e>1;)t.push(this.edges[e]),e=this.parent(e);return t.reverse().map((e=>String.fromCharCode(e))).join("")}parent(e){return this.bitVector.rank(this.bitVector.select(e,!0),!1)}firstChild(e){let t=this.bitVector.select(e,!1)+1;return this.bitVector.get(t)?this.bitVector.rank(t,!0)+1:-1}traverse(e,t){let n=this.firstChild(e);if(-1==n)return-1;let r=this.bitVector.select(n,!0),i=this.bitVector.nextClearBit(r)-r,o=s(this.edges,n,n+i,t);return o>=0?o:-1}lookup(e){let t=1;for(let s=0;s<e.length;s++){let n=e.charCodeAt(s);if(t=this.traverse(t,n),-1==t)break}return t>=0?t:-1}*predictiveSearch(e){let t=e,s=e+1;for(;s-t>0;){for(let e=t;e<s;e++)yield e;t=this.bitVector.rank(this.bitVector.select(t,!1)+1,!0)+1,s=this.bitVector.rank(this.bitVector.select(s,!1)+1,!0)+1}}size(){return this.edges.length-2}}class u{constructor(e){const t=new DataView(e);let s=0;[this.keyTrie,s]=u.readTrie(t,s,!0),[this.valueTrie,s]=u.readTrie(t,s,!1);const n=t.getUint32(s);s+=4;const r=new Uint32Array(2*(n+63>>6));for(let e=0;e<r.length>>1;e++)r[2*e+1]=t.getUint32(s),s+=4,r[2*e]=t.getUint32(s),s+=4;this.mappingBitVector=new i(r,n);const o=t.getUint32(s);s+=4,this.mapping=new Int32Array(o);for(let e=0;e<o;e++)this.mapping[e]=t.getInt32(s),s+=4;if(s!=e.byteLength)throw new Error;this.hasMappingBitList=u.createHasMappingBitList(this.mappingBitVector)}static readTrie(e,t,s){const n=e.getInt32(t);t+=4;const r=new Uint16Array(n);for(let i=0;i<n;i++){let n;s?(n=this.decode(e.getUint8(t)),t+=1):(n=e.getUint16(t),t+=2),r[i]=n}const o=e.getUint32(t);t+=4;const w=new Uint32Array(2*(o+63>>6));for(let s=0;s<w.length>>>1;s++)w[2*s+1]=e.getUint32(t),t+=4,w[2*s]=e.getUint32(t),t+=4;return[new c(new i(w,o),r),t]}static decode(e){if(32<=e&&e<=126)return e;if(161<=e&&e<=246)return e+12352-160;throw new RangeError}static encode(e){if(32<=e&&e<=126)return e;if(12353<=e&&e<=12438)return e-12352+160;if(12540==e)return e-12352+160;throw new RangeError}static createHasMappingBitList(t){const s=t.rank(t.size()+1,!1),n=new e(s);let r=0;for(let e=1;e<s;e++){let s=t.get(r+1);n.set(e,s),r=t.nextClearBit(r+1)}return n}*search(e){const t=this.keyTrie.lookup(e);if(-1!=t&&this.hasMappingBitList.get(t)){const e=this.mappingBitVector.select(t,!1),s=this.mappingBitVector.nextClearBit(e+1)-e-1;if(s>0){const t=this.mappingBitVector.rank(e,!1),n=new Array(s);for(let s=0;s<n.length;s++)yield this.valueTrie.reverseLookup(this.mapping[e-t+s]);return n}}}*predictiveSearch(e){const t=this.keyTrie.lookup(e);if(t>1)for(let e of this.keyTrie.predictiveSearch(t))if(this.hasMappingBitList.get(e)){const t=this.mappingBitVector.select(e,!1),s=this.mappingBitVector.nextClearBit(t+1)-t-1,n=this.mappingBitVector.rank(t,!1);for(let e=0;e<s;e++)yield this.valueTrie.reverseLookup(this.mapping[t-n+e])}}}class f{static build(t){for(let e=0;e<t.length;e++){if(null==t[e])throw new Error;if(e>0&&t[e-1]>t[e])throw new Error}const s=new Uint32Array(t.length);for(let e=0;e<s.length;e++)s[e]=1;let n=0,r=1,o=" ";const w=new e;for(w.add(!0);;){let e=0,i=0,l=0;for(let h=0;h<t.length;h++){if(t[h].length<n)continue;if(t[h].length==n){w.add(!1),i=s[h],e=0;continue}const a=t[h].charCodeAt(n),c=s[h];i!=c?(w.add(!1),w.add(!0),o+=String.fromCharCode(a),r+=1):e!=a&&(w.add(!0),o+=String.fromCharCode(a),r+=1),s[h]=r,e=a,i=c,l++}if(0==l)break;n++}const l=new Uint32Array(w.words.buffer,0,2*(w.size+63>>6)),h=new i(l,w.size),a=new Uint16Array(o.length);for(let e=0;e<o.length;e++)a[e]=o.charCodeAt(e);return[new c(h,a),s]}}class d{static decodeBytes(e){let t="";for(let s=0;s<e.length;s++)t+=d.decodeByte(e[s]);return t}static decodeByte(e){if(32<=e&&e<=126)return String.fromCharCode(e);if(161<=e&&e<=246)return String.fromCharCode(e+12352-160);throw new RangeError}static encodeString(e){const t=new Uint8Array(e.length);for(let s=0;s<e.length;s++)t[s]=d.encodeChar(e.charCodeAt(s));return t}static encodeChar(e){if(0==e)return 0;if(32<=e&&e<=126)return e;if(12353<=e&&e<=12438)return e-12352+160;if(12540===e)return e-12352+160;throw new RangeError("unknown character to encode: "+e)}}class g{constructor(e,t,s,n){this.base=e,this.check=t,this.charConverter=s,this.charSize=n}traverse(e,t){const s=this.base[e]+t;return this.check[s]==e?s:-1}lookup(e){if(0==e.length)return 0;let t=0;for(let s=0;s<e.length;s++){const n=this.charConverter(e.charCodeAt(s));if(n<1)throw new Error;if(t=this.traverse(t,n),-1==t)return-1}return t}*commonPrefixSearch(e){let t=0,s=0;for(;-1!=t;){const n=t;if(s==e.length)t=-1;else{const n=this.charConverter(e.charCodeAt(s));t=this.traverse(t,n),s++}yield n}}*predictiveSearch(e){const t=this.lookup(e);-1!=t&&(yield*this.visitRecursive(t))}*visitRecursive(e){yield e;for(let t=0;t<this.charSize;t++){const s=this.base[e]+t+1;if(s>=this.check.length)return;this.check[s]==e&&(yield*this.visitRecursive(s))}}}class y{constructor(){this.value=0,this.child=null,this.left=null,this.right=null,this.level=0}successor(){let e=this.right;for(;null!=e.left;)e=e.left;return e}predecessor(){let e=this.left;for(;null!=e.left;)e=e.left;for(;null!=e.right;)e=e.right;return e}}function p(e,t,s){if(s<t.length){let[n,r,i]=b(t.charCodeAt(s),e);return(i||null!=r.child)&&(r.child=p(r.child,t,s+1)),n}return null}function*x(e){null!=e&&(yield*x(e.left),yield e,yield*x(e.right))}function b(e,t){let s,n=!1;if(null==t)return s=new y,s.value=e,s.level=1,s.left=null,s.right=null,[s,s,!0];if(e<t.value)[t.left,s,n]=b(e,t.left);else{if(!(e>t.value))return[t,t,!1];[t.right,s,n]=b(e,t.right)}return[t=function(e){if(null==e)return null;if(null==e.right||null==e.right.right)return e;if(e.level==e.right.right.level){let t=e.right;return e.right=t.left,t.left=e,t.level=t.level+1,t}return e}(t=function(e){if(null==e)return null;if(null==e.left)return e;if(e.left.level==e.level){let t=e.left;return e.left=t.right,t.right=e,t}return e}(t)),s,n]}class v{constructor(e,t,s,n,r,i){this.or=e,this.beginGroup=t,this.endGroup=s,this.beginClass=n,this.endClass=r,this.newline=i,this.root=null,this.escapedCharacters=v.initializeEscapeCharacters()}static getDEFAULT(){return new v("|","(",")","[","]","")}static initializeEscapeCharacters(){const t="\\.[]{}()*+-?^$|",s=new e(128);for(let e=0;e<t.length;e++)s.set(t.charCodeAt(e),!0);return s}add(e){0!=e.length&&(this.root=p(this.root,e,0))}generateStub(e){let t="",s=0,n=0;for(let t of x(e))s++,null!=t.child&&n++;const r=s-n;if(s>1&&n>0&&(t+=this.beginGroup),r>0){r>1&&(t+=this.beginClass);for(let s of x(e))null==s.child&&(s.value<128&&this.escapedCharacters.get(s.value)&&(t+="\\"),t+=String.fromCharCode(s.value));r>1&&(t+=this.endClass)}if(n>0){r>0&&(t+=this.or);for(let s of x(e))null!=s.child&&(s.value<128&&this.escapedCharacters.get(s.value)&&(t+="\\"),t+=String.fromCharCode(s.value),null!=this.newline&&(t+=this.newline),t+=this.generateStub(s.child),n>1&&(t+=this.or));n>1&&(t=t.substr(0,t.length-1))}return s>1&&n>0&&(t+=this.endGroup),t}generate(){return null==this.root?"":this.generateStub(this.root)}}class m{constructor(e,t){this.prefix=e,this.suffixes=t}}class C{constructor(e,t,s){this.trie=e,this.hiraganaList=t,this.remainList=s}static buildProcessor(){const e=new Int16Array([0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,26,31,95,-1,100,121,147,-1,175,182,203,229,251,-1,266,284,291,302,334,-1,379,401,420,432,464,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,50,49,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,28,-1,-1,-1,-1,52,-1,-1,-1,-1,-1,-1,24,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,67,-1,-1,-1,-1,-1,-1,-1,34,-1,-1,-1,-1,-1,-1,76,-1,93,-1,-1,-1,-1,59,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,118,-1,136,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,149,-1,158,-1,23,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,160,-1,-1,-1,-1,177,-1,201,-1,-1,-1,-1,-1,-1,61,-1,-1,-1,-1,-1,-1,-1,-1,44,-1,-1,47,-1,212,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,230,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,248,86,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,269,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,317,-1,-1,-1,-1,-1,293,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,319,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,343,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,360,-1,-1,-1,361,-1,362,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,384,-1,-1,-1,-1,402,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,46,-1,74,-1,-1,-1,-1,85,-1,-1,-1,-1,-1,-1,-1,-1,68,-1,-1,83,-1,427,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,445,-1]),t=new Int16Array([-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,0,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,98,98,147,0,98,99,147,99,98,99,147,100,99,99,98,171,147,270,159,99,98,322,147,135,98,99,152,135,207,99,152,135,134,221,152,310,319,135,319,310,152,199,520,135,134,199,152,221,134,199,214,183,522,221,214,199,522,539,214,527,536,199,536,527,214,-1,-1,216,373,100,214,216,100,100,102,216,100,100,102,102,373,216,102,100,373,-1,-1,216,102,100,-1,100,240,100,102,103,240,-1,102,103,240,103,-1,103,-1,-1,240,-1,-1,103,242,-1,240,-1,242,103,-1,103,242,103,-1,104,-1,266,242,104,-1,266,104,104,242,266,268,-1,296,104,268,266,296,-1,268,104,296,104,-1,104,268,266,296,106,-1,301,268,106,296,301,107,106,106,301,107,-1,-1,106,107,301,107,110,-1,106,107,301,-1,106,-1,303,107,108,107,303,107,108,-1,303,-1,108,324,108,108,303,324,108,-1,-1,324,303,108,108,-1,108,324,108,-1,109,350,-1,324,109,350,-1,-1,109,350,-1,-1,109,-1,109,350,-1,-1,-1,372,109,350,110,372,109,-1,110,372,-1,-1,110,-1,-1,372,-1,110,110,112,-1,372,387,112,110,-1,387,112,110,116,387,-1,-1,112,112,-1,387,113,-1,112,-1,113,387,112,114,113,412,-1,114,-1,412,113,114,113,412,115,-1,113,114,115,412,114,115,115,114,-1,412,-1,114,115,406,-1,423,115,406,115,423,-1,406,115,423,-1,-1,-1,406,-1,423,116,-1,-1,406,116,423,-1,116,116,438,-1,-1,-1,438,116,-1,-1,438,116,116,116,-1,116,438,116,-1,449,453,455,438,449,453,455,-1,449,453,455,-1,-1,-1,449,453,455,-1,-1,118,449,453,455,118,500,-1,-1,118,500,-1,-1,-1,500,118,-1,-1,-1,-1,500,118,118,119,505,118,500,119,505,-1,119,119,505,122,122,122,122,119,505,-1,-1,-1,120,119,505,119,120,119,-1,541,120,-1,120,541,121,120,120,541,121,-1,-1,120,120,541,120,120,120,585,121,541,-1,585,-1,-1,121,585,-1,-1,121,-1,122,585,122,-1,-1,-1,122,585,-1,-1,122,-1,-1,122,122,122,122,122,-1,-1,122,-1,-1,-1,-1,-1,122,-1,-1,-1,122,122]),s=new Int8Array([-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,0,-1,-1,-1,0,-1,-1,-1,0,-1,-1,-1,0,-1,-1,-1,-1,0,0,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,0,1,0,0,0,0,0,1,0,0,0,-1,-1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,-1,0,0,0,0,0,0,-1,0,0,0,0,0,2,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,-1,-1,0,0,0,0,0,1,0,0,0,-1,0,0,1,0,0,0,0,-1,-1,-1,0,0,0,-1,-1,0,-1,0,0,0,-1,-1,0,0,1,-1,0,-1,-1,0,-1,-1,0,0,-1,0,-1,0,0,-1,-1,0,-1,-1,0,-1,0,0,0,-1,0,1,0,0,0,0,-1,0,0,0,0,0,-1,0,0,0,-1,-1,-1,0,-1,0,0,-1,0,0,0,0,0,0,0,1,0,0,-1,-1,0,0,0,1,0,-1,0,0,0,-1,-1,-1,0,0,0,-1,0,-1,0,-1,0,-1,0,0,-1,1,0,0,0,-1,-1,0,0,-1,0,-1,-1,0,-1,-1,0,0,-1,0,0,0,-1,-1,0,0,-1,-1,1,-1,0,0,-1,-1,-1,0,0,0,0,0,-1,-1,0,0,-1,-1,0,-1,-1,0,-1,0,0,0,-1,0,0,0,0,-1,0,0,-1,-1,0,-1,-1,0,1,-1,0,0,-1,0,-1,0,0,-1,0,0,0,-1,0,-1,0,0,0,1,0,0,-1,0,0,0,0,1,-1,0,0,-1,0,-1,-1,0,0,-1,0,1,0,0,0,-1,0,-1,0,-1,-1,-1,0,-1,0,0,-1,-1,0,0,0,-1,-1,0,0,-1,-1,-1,0,0,-1,-1,0,-1,1,0,-1,-1,0,-1,-1,0,0,0,0,0,0,0,-1,0,0,0,-1,-1,-1,0,0,0,-1,-1,0,0,0,0,0,0,-1,-1,0,0,-1,-1,-1,0,0,-1,-1,-1,-1,0,0,1,0,0,-1,0,0,0,-1,-1,0,0,0,0,0,0,0,0,-1,-1,-1,0,0,0,1,0,-1,-1,0,0,-1,-1,0,0,0,0,0,0,-1,-1,-1,0,0,-1,1,-1,0,0,0,-1,0,-1,-1,0,0,-1,-1,1,-1,0,0,0,-1,-1,-1,0,0,-1,-1,0,-1,-1,0,0,0,0,0,-1,-1,0,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,1]),n=new g(e,t,(function(e){return e}),128);return new C(n,["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","、","ー","。","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","「","","」","","","","あ","","","","え","","","","い","","","","","ん","お","","","","","","う","","","","","","ば","っ","びゃ","〜","べ","か","びぇ","っ","び","せ","びぃ","","","し","ぼ","でゅ","びょ","ふゅ","っ","こ","ぶ","ゎ","びゅ","ちゃ","","く","ちゃ","ちぇ","てゅ","","ちぇ","ち","でぃ","ふゃ","ちぃ","ヵ","","ちょ","っ","ヶ","ちょ","でゃ","w","ちゅ","どぅ","でぇ","ちゅ","ふょ","","でぃ","どぁ","っ","ゑ","ふゅ","どぇ","でょ","ゐ","ゎ","どぃ","ヵ","","でゅ","っ","ヶ","どぉ","","","ぢゃ","てぃ","だ","どぅ","ぢぇ","っ","で","ふぁ","ぢぃ","","ぢ","ふぇ","っ","とぅ","ぢょ","ふぃ","ど","","","","ぢゅ","ふぉ","づ","","","ぐぁ","","ふ","が","ぐぇ","","","げ","ぐぃ","っ","","ぎ","","","ぐぉ","","","ご","ぎゃ","","ぐぅ","","ぎぇ","ぐ","","","ぎぃ","","","は","","ふぁ","ぎょ","へ","","ふぇ","っ","ひ","ぎゅ","ふぃ","ひゃ","","じゃ","ほ","ひぇ","ふぉ","じぇ","","ひぃ","ふ","じぃ","","","","ひょ","","じょ","じゃ","","くぁ","ひゅ","じぇ","じゅ","くぇ","か","じ","っ","くぃ","け","","","じょ","き","くぉ","っ","ん","","じゅ","こ","くぅ","","","","きゃ","く","ぁ","","きぇ","","ぇ","","きぃ","","ぃ","ゃ","","っ","きょ","ぇ","ぉ","","","ぃ","きゅ","","ぅ","","","ょ","","","ま","みゃ","","ゅ","め","みぇ","","","み","みぃ","","","っ","","も","みょ","","","","にゃ","む","みゅ","な","にぇ","","","ね","にぃ","","","に","","","にょ","","ん","の","ぱ","","にゅ","ぴゃ","ぺ","ぬ","","ぴぇ","ぴ","","","ぴぃ","","","ぽ","っ","","ぴょ","くぁ","","ぷ","","くぇ","ぴゅ","","ら","くぃ","りゃ","","れ","","りぇ","くぉ","り","っ","りぃ","さ","","く","ろ","せ","りょ","っ","","し","る","","りゅ","","","そ","しゃ","","しゃ","っ","しぇ","す","しぇ","","し","","しぃ","","","","しょ","","しょ","た","","","しゅ","て","しゅ","","","ち","てゃ","","","","てぇ","と","","","てぃ","","っ","つ","","","てょ","","","つぁ","とぁ","ちゃ","てゅ","つぇ","とぇ","ちぇ","","つぃ","とぃ","ちぃ","","","","つぉ","とぉ","ちょ","","","ゔぁ","つ","とぅ","ちゅ","ゔぇ","ゔゃ","","","ゔぃ","ゔぇ","","","","ゔぃ","ゔぉ","","","","","ゔょ","ゔ","っ","わ","うぁ","","ゔゅ","うぇ","うぇ","","","うぃ","うぃ","‥","〜","…","・","を","うぉ","","","","ぁ","う","う","っ","ぇ","","","ゃ","ぃ","","","ぇ","や","ん","ぉ","ぃ","いぇ","","","","ぅ","ょ","","っ","","じゃ","よ","ゅ","","じぇ","","","ゆ","じぃ","","","っ","","『","じょ","』","","","","ざ","じゅ","","","ぜ","","","←","じ","↓","↑","→","","","ぞ","","","","","","ず","","","","","っ"],s)}romajiToHiragana(e){let t="",s=0;for(;s<e.length;){let n=-1,r=-1;for(let t of this.trie.commonPrefixSearch(e.substr(s)))-1!=this.remainList[t]&&(n=t),r++;-1==n?(t+=e.charAt(s),s++):(t+=this.hiraganaList[n],s=s+r-this.remainList[n])}return t}romajiToHiraganaPredictively(e){let t="",s=0;for(;s<e.length;){let n=-1,r=0;for(let t of this.trie.commonPrefixSearch(e.substr(s)))-1!=this.remainList[t]&&(n=t),r++;if(r+s-1==e.length){let n=new Set;for(let t of this.trie.predictiveSearch(e.substr(s)))-1!=this.remainList[t]&&n.add(this.hiraganaList[t]);let r=new Array;for(let e of n)r.push(e);return 1==r.length?(t+=r[0],new m(t,[""])):new m(t,r)}n>=0?(t+=this.hiraganaList[n],s=s+r-1-this.remainList[n]):(t+=e[s],s++)}return new m(t,[""])}}class k{constructor(e,t,s){this.roman=e,this.hiragana=t,this.remain=s,this.index=k.calculateIndex(e)}static _calculateIndex(e,t,s){let n=0;for(let r=0;r<4;r++){const i=r+t;n|=i<e.length&&i<s?e.charCodeAt(i):0,r<3&&(n<<=8)}return n}static calculateIndex(e){return k._calculateIndex(e,0,4)}}const z=[new k("-","ー",0),new k("~","〜",0),new k(".","。",0),new k(",","、",0),new k("z/","・",0),new k("z.","…",0),new k("z,","‥",0),new k("zh","←",0),new k("zj","↓",0),new k("zk","↑",0),new k("zl","→",0),new k("z-","〜",0),new k("z[","『",0),new k("z]","』",0),new k("[","「",0),new k("]","」",0),new k("va","ゔぁ",0),new k("vi","ゔぃ",0),new k("vu","ゔ",0),new k("ve","ゔぇ",0),new k("vo","ゔぉ",0),new k("vya","ゔゃ",0),new k("vyi","ゔぃ",0),new k("vyu","ゔゅ",0),new k("vye","ゔぇ",0),new k("vyo","ゔょ",0),new k("qq","っ",1),new k("vv","っ",1),new k("ll","っ",1),new k("xx","っ",1),new k("kk","っ",1),new k("gg","っ",1),new k("ss","っ",1),new k("zz","っ",1),new k("jj","っ",1),new k("tt","っ",1),new k("dd","っ",1),new k("hh","っ",1),new k("ff","っ",1),new k("bb","っ",1),new k("pp","っ",1),new k("mm","っ",1),new k("yy","っ",1),new k("rr","っ",1),new k("ww","っ",1),new k("www","w",2),new k("cc","っ",1),new k("kya","きゃ",0),new k("kyi","きぃ",0),new k("kyu","きゅ",0),new k("kye","きぇ",0),new k("kyo","きょ",0),new k("gya","ぎゃ",0),new k("gyi","ぎぃ",0),new k("gyu","ぎゅ",0),new k("gye","ぎぇ",0),new k("gyo","ぎょ",0),new k("sya","しゃ",0),new k("syi","しぃ",0),new k("syu","しゅ",0),new k("sye","しぇ",0),new k("syo","しょ",0),new k("sha","しゃ",0),new k("shi","し",0),new k("shu","しゅ",0),new k("she","しぇ",0),new k("sho","しょ",0),new k("zya","じゃ",0),new k("zyi","じぃ",0),new k("zyu","じゅ",0),new k("zye","じぇ",0),new k("zyo","じょ",0),new k("tya","ちゃ",0),new k("tyi","ちぃ",0),new k("tyu","ちゅ",0),new k("tye","ちぇ",0),new k("tyo","ちょ",0),new k("cha","ちゃ",0),new k("chi","ち",0),new k("chu","ちゅ",0),new k("che","ちぇ",0),new k("cho","ちょ",0),new k("cya","ちゃ",0),new k("cyi","ちぃ",0),new k("cyu","ちゅ",0),new k("cye","ちぇ",0),new k("cyo","ちょ",0),new k("dya","ぢゃ",0),new k("dyi","ぢぃ",0),new k("dyu","ぢゅ",0),new k("dye","ぢぇ",0),new k("dyo","ぢょ",0),new k("tsa","つぁ",0),new k("tsi","つぃ",0),new k("tse","つぇ",0),new k("tso","つぉ",0),new k("tha","てゃ",0),new k("thi","てぃ",0),new k("t'i","てぃ",0),new k("thu","てゅ",0),new k("the","てぇ",0),new k("tho","てょ",0),new k("t'yu","てゅ",0),new k("dha","でゃ",0),new k("dhi","でぃ",0),new k("d'i","でぃ",0),new k("dhu","でゅ",0),new k("dhe","でぇ",0),new k("dho","でょ",0),new k("d'yu","でゅ",0),new k("twa","とぁ",0),new k("twi","とぃ",0),new k("twu","とぅ",0),new k("twe","とぇ",0),new k("two","とぉ",0),new k("t'u","とぅ",0),new k("dwa","どぁ",0),new k("dwi","どぃ",0),new k("dwu","どぅ",0),new k("dwe","どぇ",0),new k("dwo","どぉ",0),new k("d'u","どぅ",0),new k("nya","にゃ",0),new k("nyi","にぃ",0),new k("nyu","にゅ",0),new k("nye","にぇ",0),new k("nyo","にょ",0),new k("hya","ひゃ",0),new k("hyi","ひぃ",0),new k("hyu","ひゅ",0),new k("hye","ひぇ",0),new k("hyo","ひょ",0),new k("bya","びゃ",0),new k("byi","びぃ",0),new k("byu","びゅ",0),new k("bye","びぇ",0),new k("byo","びょ",0),new k("pya","ぴゃ",0),new k("pyi","ぴぃ",0),new k("pyu","ぴゅ",0),new k("pye","ぴぇ",0),new k("pyo","ぴょ",0),new k("fa","ふぁ",0),new k("fi","ふぃ",0),new k("fu","ふ",0),new k("fe","ふぇ",0),new k("fo","ふぉ",0),new k("fya","ふゃ",0),new k("fyu","ふゅ",0),new k("fyo","ふょ",0),new k("hwa","ふぁ",0),new k("hwi","ふぃ",0),new k("hwe","ふぇ",0),new k("hwo","ふぉ",0),new k("hwyu","ふゅ",0),new k("mya","みゃ",0),new k("myi","みぃ",0),new k("myu","みゅ",0),new k("mye","みぇ",0),new k("myo","みょ",0),new k("rya","りゃ",0),new k("ryi","りぃ",0),new k("ryu","りゅ",0),new k("rye","りぇ",0),new k("ryo","りょ",0),new k("n'","ん",0),new k("nn","ん",0),new k("n","ん",0),new k("xn","ん",0),new k("a","あ",0),new k("i","い",0),new k("u","う",0),new k("wu","う",0),new k("e","え",0),new k("o","お",0),new k("xa","ぁ",0),new k("xi","ぃ",0),new k("xu","ぅ",0),new k("xe","ぇ",0),new k("xo","ぉ",0),new k("la","ぁ",0),new k("li","ぃ",0),new k("lu","ぅ",0),new k("le","ぇ",0),new k("lo","ぉ",0),new k("lyi","ぃ",0),new k("xyi","ぃ",0),new k("lye","ぇ",0),new k("xye","ぇ",0),new k("ye","いぇ",0),new k("ka","か",0),new k("ki","き",0),new k("ku","く",0),new k("ke","け",0),new k("ko","こ",0),new k("xka","ヵ",0),new k("xke","ヶ",0),new k("lka","ヵ",0),new k("lke","ヶ",0),new k("ga","が",0),new k("gi","ぎ",0),new k("gu","ぐ",0),new k("ge","げ",0),new k("go","ご",0),new k("sa","さ",0),new k("si","し",0),new k("su","す",0),new k("se","せ",0),new k("so","そ",0),new k("ca","か",0),new k("ci","し",0),new k("cu","く",0),new k("ce","せ",0),new k("co","こ",0),new k("qa","くぁ",0),new k("qi","くぃ",0),new k("qu","く",0),new k("qe","くぇ",0),new k("qo","くぉ",0),new k("kwa","くぁ",0),new k("kwi","くぃ",0),new k("kwu","くぅ",0),new k("kwe","くぇ",0),new k("kwo","くぉ",0),new k("gwa","ぐぁ",0),new k("gwi","ぐぃ",0),new k("gwu","ぐぅ",0),new k("gwe","ぐぇ",0),new k("gwo","ぐぉ",0),new k("za","ざ",0),new k("zi","じ",0),new k("zu","ず",0),new k("ze","ぜ",0),new k("zo","ぞ",0),new k("ja","じゃ",0),new k("ji","じ",0),new k("ju","じゅ",0),new k("je","じぇ",0),new k("jo","じょ",0),new k("jya","じゃ",0),new k("jyi","じぃ",0),new k("jyu","じゅ",0),new k("jye","じぇ",0),new k("jyo","じょ",0),new k("ta","た",0),new k("ti","ち",0),new k("tu","つ",0),new k("tsu","つ",0),new k("te","て",0),new k("to","と",0),new k("da","だ",0),new k("di","ぢ",0),new k("du","づ",0),new k("de","で",0),new k("do","ど",0),new k("xtu","っ",0),new k("xtsu","っ",0),new k("ltu","っ",0),new k("ltsu","っ",0),new k("na","な",0),new k("ni","に",0),new k("nu","ぬ",0),new k("ne","ね",0),new k("no","の",0),new k("ha","は",0),new k("hi","ひ",0),new k("hu","ふ",0),new k("fu","ふ",0),new k("he","へ",0),new k("ho","ほ",0),new k("ba","ば",0),new k("bi","び",0),new k("bu","ぶ",0),new k("be","べ",0),new k("bo","ぼ",0),new k("pa","ぱ",0),new k("pi","ぴ",0),new k("pu","ぷ",0),new k("pe","ぺ",0),new k("po","ぽ",0),new k("ma","ま",0),new k("mi","み",0),new k("mu","む",0),new k("me","め",0),new k("mo","も",0),new k("xya","ゃ",0),new k("lya","ゃ",0),new k("ya","や",0),new k("wyi","ゐ",0),new k("xyu","ゅ",0),new k("lyu","ゅ",0),new k("yu","ゆ",0),new k("wye","ゑ",0),new k("xyo","ょ",0),new k("lyo","ょ",0),new k("yo","よ",0),new k("ra","ら",0),new k("ri","り",0),new k("ru","る",0),new k("re","れ",0),new k("ro","ろ",0),new k("xwa","ゎ",0),new k("lwa","ゎ",0),new k("wa","わ",0),new k("wi","うぃ",0),new k("we","うぇ",0),new k("wo","を",0),new k("wha","うぁ",0),new k("whi","うぃ",0),new k("whu","う",0),new k("whe","うぇ",0),new k("who","うぉ",0)].sort(((e,t)=>e.index-t.index)),A=z.map((e=>e.index));class S{constructor(e,t){this.estaglishedHiragana=e,this.predictiveSuffixes=t}}function B(e,s){let n=0,r=A.length;for(let i=0;i<4&&!(e.length<=s+i);i++){const o=k._calculateIndex(e,s,s+i+1);n=t(A,n,r,o),n>=0||(n=-n-1);if(r=t(A,n,r,o+(1<<24-8*i)),r<0&&(r=-r-1),r-n==1)return new Set([z[n]])}const i=new Set;for(let e=n;e<r;e++)i.add(z[e]);return i}exports.BitList=e,exports.BitVector=i,exports.CompactDictionary=u,exports.CompactDictionaryBuilder=class{static build(t){const s=new Array;for(const e of t.keys())try{d.encodeString(e)}catch(t){s.push(e),console.log("skipped the world: "+e)}for(const e of s)t.delete(e);const n=Array.from(t.keys()).sort(),r=f.build(n)[0],i=new Set;for(const e of t.values())for(const t of e)i.add(t);const o=Array.from(i.values()).sort(),w=f.build(o)[0];let l=0;for(const e of t.values())l+=e.length;const h=new Uint32Array(l);let a=0;const c=new e;for(let e=1;e<=r.size()+1;e++){let s=r.reverseLookup(e);c.add(!1);let n=t.get(s);if(null!=n)for(let e=0;e<n.length;e++)c.add(!0),h[a]=w.lookup(n[e]),a++}const u=8+r.edges.length+8*(r.bitVector.size()+63>>>6)+(8+2*w.edges.length+8*(w.bitVector.size()+63>>>6))+(8+8*(c.size+63>>>6)+4*h.length),g=new ArrayBuffer(u),y=new DataView(g);let p=0;y.setInt32(p,r.edges.length),p+=4;for(let e=0;e<r.edges.length;e++){const t=d.encodeChar(r.edges[e]);y.setUint8(p,t),p+=1}y.setInt32(p,r.bitVector.size()),p+=4;const x=r.bitVector.words;for(let e=0;e<x.length>>>1;e++)y.setUint32(p,x[2*e+1]),p+=4,y.setUint32(p,x[2*e]),p+=4;y.setInt32(p,w.edges.length),p+=4;for(let e=0;e<w.edges.length;e++)y.setUint16(p,w.edges[e]),p+=2;y.setInt32(p,w.bitVector.size()),p+=4;const b=w.bitVector.words;for(let e=0;e<b.length>>>1;e++)y.setUint32(p,b[2*e+1]),p+=4,y.setUint32(p,b[2*e]),p+=4;y.setInt32(p,c.size),p+=4;const v=c.size+63>>6;for(let e=0;e<v;e++)y.setUint32(p,c.words[2*e+1]),p+=4,y.setUint32(p,c.words[2*e]),p+=4;y.setInt32(p,h.length),p+=4;for(let e=0;e<h.length;e++)y.setUint32(p,h[e]),p+=4;if(p!==u)throw new Error(`file size is not valid: expected=${u} actual=${p}`);return g}},exports.CompactHiraganaString=d,exports.DoubleArray=g,exports.LOUDSTrie=c,exports.LOUDSTrieBuilder=f,exports.Migemo=class{constructor(){this.dict=null,this.rxop=null,this.processor=C.buildProcessor()}queryAWord(e){const t=null==this.rxop?v.getDEFAULT():new v(this.rxop[0],this.rxop[1],this.rxop[2],this.rxop[3],this.rxop[4],this.rxop[5]);t.add(e);const s=e.toLowerCase();if(null!=this.dict)for(const e of this.dict.predictiveSearch(s))t.add(e);const n=l(e);t.add(n);const r=h(e);t.add(r);const i=this.processor.romajiToHiraganaPredictively(s);for(const e of i.suffixes){const s=i.prefix+e;if(t.add(s),null!=this.dict)for(const e of this.dict.predictiveSearch(s))t.add(e);const n=a(s);t.add(n),t.add(h(n))}return t.generate()}query(e){if(""==e)return"";const t=this.parseQuery(e);let s="";for(const e of t)s+=this.queryAWord(e);return s}setDict(e){this.dict=e}setRxop(e){this.rxop=e}*parseQuery(e){const t=/[^A-Z\s]+|[A-Z]{2,}|([A-Z][^A-Z\s]+)|([A-Z]\s*$)/g;let s;for(;null!==(s=t.exec(e));)yield s[0]}},exports.RomajiPredictiveResult=m,exports.RomajiProcessor2=C,exports.TernaryRegexGenerator=v,exports.binarySearch=t,exports.binarySearchString=function(e,t,s,n){let r=t,i=s-1;for(;r<=i;){const t=r+i>>>1,s=e[t];if(s<n)r=t+1;else{if(!(s>n))return t;i=t-1}}return-(r+1)},exports.binarySearchUint16=s,exports.bitCount=n,exports.findRomanEntryPredicatively=B,exports.han2zen_conv=l,exports.hira2kata_conv=a,exports.numberOfTrailingZeros=r,exports.romajiToHiragana=function(e){if(0==e.length)return"";let s="",n=0,r=1;for(;n<e.length;){let i=-1,o=0,w=A.length;for(;w-o>1&&r<=e.length;){const s=k._calculateIndex(e,n,r);o=t(A,o,w,s),o>=0?i=o:o=-o-1;w=t(A,o,w,s+(1<<32-8*(r-n))),w<0&&(w=-w-1),r++}if(i>=0){const e=z[i];s+=e.hiragana,n=n+e.roman.length-e.remain,r=n+1}else s+=e.charAt(n),n++,r=n+1}return s},exports.romajiToHiraganaPredictively=function(e){if(0==e.length)return new S("",new Set([""]));let s="",n=0,r=1;for(;n<e.length;){let i=-1,o=0,w=A.length;for(;w-o>1&&r<=e.length;){const s=k._calculateIndex(e,n,r);o=t(A,o,w,s),o>=0?i=o:o=-o-1;w=t(A,o,w,s+(1<<32-8*(r-n))),w<0&&(w=-w-1),r++}if(r>e.length&&w-o>1){const t=new Set;for(let s=o;s<w;s++){const n=z[s];if(n.remain>0){let s=B(e,r-1-n.remain);for(let e of s)0==e.remain&&t.add(n.hiragana+e.hiragana)}else t.add(n.hiragana)}return new S(s.toString(),t)}if(i>=0){const e=z[i];s+=e.hiragana,n=n+e.roman.length-e.remain,r=n+1}else s+=e.charAt(n),n++,r=n+1}return new S(s.toString(),new Set([""]))},exports.zen2han_conv=h;
|
|
2
|
-
//# sourceMappingURL=jsmigemo.min.cjs.map
|
|
1
|
+
"use strict";class e{constructor(e){null==e?(this.words=new Uint32Array(8),this.size=0):(this.words=new Uint32Array(e+31>>5),this.size=e)}add(e){if(this.words.length<this.size+1+31>>5){const e=new Uint32Array(2*this.words.length);e.set(this.words,0),this.words=e}this.set(this.size,e),this.size++}set(e,t){if(this.size<e)throw new Error;t?this.words[e>>5]|=1<<(31&e):this.words[e>>5]&=~(1<<(31&e))}get(e){if(this.size<e)throw new Error;return 1==(this.words[e>>5]>>(31&e)&1)}}function t(e,t,s,n){let r=t,i=s-1;for(;r<=i;){const t=r+i>>>1,s=e[t];if(s<n)r=t+1;else{if(!(s>n))return t;i=t-1}}return-(r+1)}function s(e,t,s,n){let r=t,i=s-1;for(;r<=i;){const t=r+i>>>1,s=e[t];if(s<n)r=t+1;else{if(!(s>n))return t;i=t-1}}return-(r+1)}function n(e){return e=(e=(858993459&(e-=e>>>1&1431655765))+(e>>>2&858993459))+(e>>>4)&252645135,e+=e>>>8,63&(e+=e>>>16)}function r(e){let t,s;if(0==e)return 64;let n=63;return s=e,0!=s?(n-=32,t=s):t=e>>>32,s=t<<16,0!=s&&(n-=16,t=s),s=t<<8,0!=s&&(n-=8,t=s),s=t<<4,0!=s&&(n-=4,t=s),s=t<<2,0!=s&&(n-=2,t=s),n-(t<<1>>>31)}class i{constructor(e,t){const s=2*(t+63>>6);if(s!=e.length)throw new Error(`expected: ${s} actual: ${e.length}`);this.words=e,this.sizeInBits=t,this.lb=new Uint32Array(t+511>>>9),this.sb=new Uint16Array(8*this.lb.length);let r=0,i=0;for(let e=0;e<this.sb.length;e++){const t=e<this.words.length>>>1?n(this.words[2*e])+n(this.words[2*e+1]):0;this.sb[e]=i,i+=t,7==(7&e)&&(this.lb[e>>>3]=r,r+=i,i=0)}}rank(e,t){if(e<0&&this.sizeInBits<=e)throw new RangeError;let s=this.sb[e>>>6]+this.lb[e>>>9];(63&e)>=32&&(s+=n(this.words[e>>>5&4294967294]));const r=2147483647>>>31-(31&e);return s+=n(this.words[e>>>5]&r),t?s:e-s}select(e,t){const s=this.lowerBoundBinarySearchLB(e,t)-1;if(-1==s)return 0;const r=e-(t?this.lb[s]:512*s-this.lb[s]),i=this.lowerBoundBinarySearchSB(r,8*s,8*s+8,t)-1;let o=r-(t?this.sb[i]:i%8*64-this.sb[i]),w=this.words[2*i],l=this.words[2*i+1];t||(w=~w,l=~l);const h=n(w);let a=0;for(o>h&&(w=l,o-=h,a=32);o>0;)o-=1&w,w>>>=1,a++;return 64*i+(a-1)}lowerBoundBinarySearchLB(e,t){let s=this.lb.length,n=-1;if(t)for(;s-n>1;){let t=s+n>>>1;this.lb[t]<e?n=t:s=t}else for(;s-n>1;){let t=s+n>>>1;512*t-this.lb[t]<e?n=t:s=t}return s}lowerBoundBinarySearchSB(e,t,s,n){let r=s,i=t-1;if(n)for(;r-i>1;){const t=r+i>>>1;this.sb[t]<e?i=t:r=t}else for(;r-i>1;){const t=r+i>>>1;64*(7&t)-this.sb[t]<e?i=t:r=t}return r}nextClearBit(e){let t=e>>5,s=~this.words[t]&4294967295<<e;for(;;){if(0!=s)return 32*t+r(s);if(++t==this.words.length)return-1;s=~this.words[t]}}size(){return this.sizeInBits}get(e){if(e<0&&this.sizeInBits<=e)throw new RangeError;return 1==(this.words[e>>>5]>>>(31&e)&1)}toString(){let e="";for(let t=0;t<this.sizeInBits;t++){e+=1==(this.words[t>>>6]>>>(63&t)&1)?"1":"0",63==(63&t)&&(e+=" ")}return e}}const o=new Map;o.set("!","!"),o.set('"',"”"),o.set("#","#"),o.set("$","$"),o.set("%","%"),o.set("&","&"),o.set("'","’"),o.set("(","("),o.set(")",")"),o.set("*","*"),o.set("+","+"),o.set(",",","),o.set("-","-"),o.set(".","."),o.set("/","/"),o.set("0","0"),o.set("1","1"),o.set("2","2"),o.set("3","3"),o.set("4","4"),o.set("5","5"),o.set("6","6"),o.set("7","7"),o.set("8","8"),o.set("9","9"),o.set(":",":"),o.set(";",";"),o.set("<","<"),o.set("=","="),o.set(">",">"),o.set("?","?"),o.set("@","@"),o.set("A","A"),o.set("B","B"),o.set("C","C"),o.set("D","D"),o.set("E","E"),o.set("F","F"),o.set("G","G"),o.set("H","H"),o.set("I","I"),o.set("J","J"),o.set("K","K"),o.set("L","L"),o.set("M","M"),o.set("N","N"),o.set("O","O"),o.set("P","P"),o.set("Q","Q"),o.set("R","R"),o.set("S","S"),o.set("T","T"),o.set("U","U"),o.set("V","V"),o.set("W","W"),o.set("X","X"),o.set("Y","Y"),o.set("Z","Z"),o.set("[","["),o.set("\\","¥"),o.set("]","]"),o.set("^","^"),o.set("_","_"),o.set("`","‘"),o.set("a","a"),o.set("b","b"),o.set("c","c"),o.set("d","d"),o.set("e","e"),o.set("f","f"),o.set("g","g"),o.set("h","h"),o.set("i","i"),o.set("j","j"),o.set("k","k"),o.set("l","l"),o.set("m","m"),o.set("n","n"),o.set("o","o"),o.set("p","p"),o.set("q","q"),o.set("r","r"),o.set("s","s"),o.set("t","t"),o.set("u","u"),o.set("v","v"),o.set("w","w"),o.set("x","x"),o.set("y","y"),o.set("z","z"),o.set("{","{"),o.set("|","|"),o.set("}","}"),o.set("~","~"),o.set("。","。"),o.set("「","「"),o.set("」","」"),o.set("、","、"),o.set("・","・"),o.set("ヲ","ヲ"),o.set("ァ","ァ"),o.set("ィ","ィ"),o.set("ゥ","ゥ"),o.set("ェ","ェ"),o.set("ォ","ォ"),o.set("ャ","ャ"),o.set("ュ","ュ"),o.set("ョ","ョ"),o.set("ッ","ッ"),o.set("ー","ー"),o.set("ア","ア"),o.set("イ","イ"),o.set("ウ","ウ"),o.set("エ","エ"),o.set("オ","オ"),o.set("カ","カ"),o.set("キ","キ"),o.set("ク","ク"),o.set("ケ","ケ"),o.set("コ","コ"),o.set("サ","サ"),o.set("シ","シ"),o.set("ス","ス"),o.set("セ","セ"),o.set("ソ","ソ"),o.set("タ","タ"),o.set("チ","チ"),o.set("ツ","ツ"),o.set("テ","テ"),o.set("ト","ト"),o.set("ナ","ナ"),o.set("ニ","ニ"),o.set("ヌ","ヌ"),o.set("ネ","ネ"),o.set("ノ","ノ"),o.set("ハ","ハ"),o.set("ヒ","ヒ"),o.set("フ","フ"),o.set("ヘ","ヘ"),o.set("ホ","ホ"),o.set("マ","マ"),o.set("ミ","ミ"),o.set("ム","ム"),o.set("メ","メ"),o.set("モ","モ"),o.set("ヤ","ヤ"),o.set("ユ","ユ"),o.set("ヨ","ヨ"),o.set("ラ","ラ"),o.set("リ","リ"),o.set("ル","ル"),o.set("レ","レ"),o.set("ロ","ロ"),o.set("ワ","ワ"),o.set("ン","ン"),o.set("゙","゛"),o.set("゚","゜");const w=new Map;function l(e){let t="";for(let s of e){let e=o.get(s);t+=null==e?s:e}return t}function h(e){let t="";for(let s of e){let e=w.get(s);t+=null==e?s:e}return t}function a(e){let t="";for(let s=0;s<e.length;s++){const n=e.charCodeAt(s);"ぁ".charCodeAt(0)<=n&&n<="ん".charCodeAt(0)?t+=String.fromCharCode(n-"ぁ".charCodeAt(0)+"ァ".charCodeAt(0)):t+=String.fromCharCode(n)}return t}w.set("!","!"),w.set("”",'"'),w.set("#","#"),w.set("$","$"),w.set("%","%"),w.set("&","&"),w.set("’","'"),w.set("(","("),w.set(")",")"),w.set("*","*"),w.set("+","+"),w.set(",",","),w.set("-","-"),w.set(".","."),w.set("/","/"),w.set("0","0"),w.set("1","1"),w.set("2","2"),w.set("3","3"),w.set("4","4"),w.set("5","5"),w.set("6","6"),w.set("7","7"),w.set("8","8"),w.set("9","9"),w.set(":",":"),w.set(";",";"),w.set("<","<"),w.set("=","="),w.set(">",">"),w.set("?","?"),w.set("@","@"),w.set("A","A"),w.set("B","B"),w.set("C","C"),w.set("D","D"),w.set("E","E"),w.set("F","F"),w.set("G","G"),w.set("H","H"),w.set("I","I"),w.set("J","J"),w.set("K","K"),w.set("L","L"),w.set("M","M"),w.set("N","N"),w.set("O","O"),w.set("P","P"),w.set("Q","Q"),w.set("R","R"),w.set("S","S"),w.set("T","T"),w.set("U","U"),w.set("V","V"),w.set("W","W"),w.set("X","X"),w.set("Y","Y"),w.set("Z","Z"),w.set("[","["),w.set("¥","\\"),w.set("]","]"),w.set("^","^"),w.set("_","_"),w.set("‘","`"),w.set("a","a"),w.set("b","b"),w.set("c","c"),w.set("d","d"),w.set("e","e"),w.set("f","f"),w.set("g","g"),w.set("h","h"),w.set("i","i"),w.set("j","j"),w.set("k","k"),w.set("l","l"),w.set("m","m"),w.set("n","n"),w.set("o","o"),w.set("p","p"),w.set("q","q"),w.set("r","r"),w.set("s","s"),w.set("t","t"),w.set("u","u"),w.set("v","v"),w.set("w","w"),w.set("x","x"),w.set("y","y"),w.set("z","z"),w.set("{","{"),w.set("|","|"),w.set("}","}"),w.set("~","~"),w.set("。","。"),w.set("「","「"),w.set("」","」"),w.set("、","、"),w.set("・","・"),w.set("ヲ","ヲ"),w.set("ァ","ァ"),w.set("ィ","ィ"),w.set("ゥ","ゥ"),w.set("ェ","ェ"),w.set("ォ","ォ"),w.set("ャ","ャ"),w.set("ュ","ュ"),w.set("ョ","ョ"),w.set("ッ","ッ"),w.set("ー","ー"),w.set("ア","ア"),w.set("イ","イ"),w.set("ウ","ウ"),w.set("エ","エ"),w.set("オ","オ"),w.set("カ","カ"),w.set("キ","キ"),w.set("ク","ク"),w.set("ケ","ケ"),w.set("コ","コ"),w.set("サ","サ"),w.set("シ","シ"),w.set("ス","ス"),w.set("セ","セ"),w.set("ソ","ソ"),w.set("タ","タ"),w.set("チ","チ"),w.set("ツ","ツ"),w.set("テ","テ"),w.set("ト","ト"),w.set("ナ","ナ"),w.set("ニ","ニ"),w.set("ヌ","ヌ"),w.set("ネ","ネ"),w.set("ノ","ノ"),w.set("ハ","ハ"),w.set("ヒ","ヒ"),w.set("フ","フ"),w.set("ヘ","ヘ"),w.set("ホ","ホ"),w.set("マ","マ"),w.set("ミ","ミ"),w.set("ム","ム"),w.set("メ","メ"),w.set("モ","モ"),w.set("ヤ","ヤ"),w.set("ユ","ユ"),w.set("ヨ","ヨ"),w.set("ラ","ラ"),w.set("リ","リ"),w.set("ル","ル"),w.set("レ","レ"),w.set("ロ","ロ"),w.set("ワ","ワ"),w.set("ン","ン"),w.set("゛","゙"),w.set("゜","゚"),w.set("ヴ","ヴ"),w.set("ガ","ガ"),w.set("ギ","ギ"),w.set("グ","グ"),w.set("ゲ","ゲ"),w.set("ゴ","ゴ"),w.set("ザ","ザ"),w.set("ジ","ジ"),w.set("ズ","ズ"),w.set("ゼ","ゼ"),w.set("ゾ","ゾ"),w.set("ダ","ダ"),w.set("ヂ","ヂ"),w.set("ヅ","ヅ"),w.set("デ","デ"),w.set("ド","ド"),w.set("バ","バ"),w.set("ビ","ビ"),w.set("ブ","ブ"),w.set("ベ","ベ"),w.set("ボ","ボ"),w.set("パ","パ"),w.set("ピ","ピ"),w.set("プ","プ"),w.set("ペ","ペ"),w.set("ポ","ポ");class c{constructor(e,t){this.bitVector=e,this.edges=t}reverseLookup(e){if(e<=0||this.edges.length<=e)throw new RangeError;const t=new Array;for(;e>1;)t.push(this.edges[e]),e=this.parent(e);return String.fromCharCode(...t.reverse())}parent(e){return this.bitVector.rank(this.bitVector.select(e,!0),!1)}firstChild(e){const t=this.bitVector.select(e,!1)+1;return this.bitVector.get(t)?this.bitVector.rank(t,!0)+1:-1}traverse(e,t){const n=this.firstChild(e);if(-1==n)return-1;const r=this.bitVector.select(n,!0),i=this.bitVector.nextClearBit(r)-r,o=s(this.edges,n,n+i,t);return o>=0?o:-1}lookup(e){let t=1;for(let s=0;s<e.length;s++){const n=e.charCodeAt(s);if(t=this.traverse(t,n),-1==t)break}return t>=0?t:-1}*predictiveSearch(e){let t=e,s=e+1;for(;s-t>0;){for(let e=t;e<s;e++)yield e;t=this.bitVector.rank(this.bitVector.select(t,!1)+1,!0)+1,s=this.bitVector.rank(this.bitVector.select(s,!1)+1,!0)+1}}size(){return this.edges.length-2}}class u{constructor(e){const t=new DataView(e);let s=0;[this.keyTrie,s]=u.readTrie(t,s,!0),[this.valueTrie,s]=u.readTrie(t,s,!1);const n=t.getUint32(s);s+=4;const r=new Uint32Array(2*(n+63>>6));for(let e=0;e<r.length>>1;e++)r[2*e+1]=t.getUint32(s),s+=4,r[2*e]=t.getUint32(s),s+=4;this.mappingBitVector=new i(r,n);const o=t.getUint32(s);s+=4,this.mapping=new Int32Array(o);for(let e=0;e<o;e++)this.mapping[e]=t.getInt32(s),s+=4;if(s!=e.byteLength)throw new Error;this.hasMappingBitList=u.createHasMappingBitList(this.mappingBitVector)}static readTrie(e,t,s){const n=e.getInt32(t);t+=4;const r=new Uint16Array(n);for(let i=0;i<n;i++){let n;s?(n=this.decode(e.getUint8(t)),t+=1):(n=e.getUint16(t),t+=2),r[i]=n}const o=e.getUint32(t);t+=4;const w=new Uint32Array(2*(o+63>>6));for(let s=0;s<w.length>>>1;s++)w[2*s+1]=e.getUint32(t),t+=4,w[2*s]=e.getUint32(t),t+=4;return[new c(new i(w,o),r),t]}static decode(e){if(32<=e&&e<=126)return e;if(161<=e&&e<=246)return e+12352-160;throw new RangeError}static encode(e){if(32<=e&&e<=126)return e;if(12353<=e&&e<=12438)return e-12352+160;if(12540==e)return e-12352+160;throw new RangeError}static createHasMappingBitList(t){const s=t.rank(t.size()+1,!1),n=new e(s);let r=0;for(let e=1;e<s;e++){let s=t.get(r+1);n.set(e,s),r=t.nextClearBit(r+1)}return n}*search(e){const t=this.keyTrie.lookup(e);if(-1!=t&&this.hasMappingBitList.get(t)){const e=this.mappingBitVector.select(t,!1),s=this.mappingBitVector.nextClearBit(e+1)-e-1;if(s>0){const t=this.mappingBitVector.rank(e,!1);for(let n=0;n<s;n++)yield this.valueTrie.reverseLookup(this.mapping[e-t+n])}}}*predictiveSearch(e){const t=this.keyTrie.lookup(e);if(t>1)for(let e of this.keyTrie.predictiveSearch(t))if(this.hasMappingBitList.get(e)){const t=this.mappingBitVector.select(e,!1),s=this.mappingBitVector.nextClearBit(t+1)-t-1,n=this.mappingBitVector.rank(t,!1);for(let e=0;e<s;e++)yield this.valueTrie.reverseLookup(this.mapping[t-n+e])}}}class f{static build(t){for(let e=0;e<t.length;e++){if(null==t[e])throw new Error;if(e>0&&t[e-1]>t[e])throw new Error}const s=new Uint32Array(t.length);for(let e=0;e<s.length;e++)s[e]=1;let n=0,r=1,o=" ";const w=new e;for(w.add(!0);;){let e=0,i=0,l=0;for(let h=0;h<t.length;h++){if(t[h].length<n)continue;if(t[h].length==n){w.add(!1),i=s[h],e=0;continue}const a=t[h].charCodeAt(n),c=s[h];i!=c?(w.add(!1),w.add(!0),o+=String.fromCharCode(a),r+=1):e!=a&&(w.add(!0),o+=String.fromCharCode(a),r+=1),s[h]=r,e=a,i=c,l++}if(0==l)break;n++}const l=new Uint32Array(w.words.buffer,0,2*(w.size+63>>6)),h=new i(l,w.size),a=new Uint16Array(o.length);for(let e=0;e<o.length;e++)a[e]=o.charCodeAt(e);return[new c(h,a),s]}}class d{static decodeBytes(e){let t="";for(let s=0;s<e.length;s++)t+=d.decodeByte(e[s]);return t}static decodeByte(e){if(32<=e&&e<=126)return String.fromCharCode(e);if(161<=e&&e<=246)return String.fromCharCode(e+12352-160);throw new RangeError}static encodeString(e){const t=new Uint8Array(e.length);for(let s=0;s<e.length;s++)t[s]=d.encodeChar(e.charCodeAt(s));return t}static encodeChar(e){if(0==e)return 0;if(32<=e&&e<=126)return e;if(12353<=e&&e<=12438)return e-12352+160;if(12540===e)return e-12352+160;throw new RangeError("unknown character to encode: "+e)}}class g{constructor(e,t,s,n){this.base=e,this.check=t,this.charConverter=s,this.charSize=n}traverse(e,t){const s=this.base[e]+t;return this.check[s]==e?s:-1}lookup(e){if(0==e.length)return 0;let t=0;for(let s=0;s<e.length;s++){const n=this.charConverter(e.charCodeAt(s));if(n<1)throw new Error;if(t=this.traverse(t,n),-1==t)return-1}return t}*commonPrefixSearch(e){let t=0,s=0;for(;-1!=t;){const n=t;if(s==e.length)t=-1;else{const n=this.charConverter(e.charCodeAt(s));t=this.traverse(t,n),s++}yield n}}*predictiveSearch(e){const t=this.lookup(e);-1!=t&&(yield*this.visitRecursive(t))}*visitRecursive(e){yield e;for(let t=0;t<this.charSize;t++){const s=this.base[e]+t+1;if(s>=this.check.length)return;this.check[s]==e&&(yield*this.visitRecursive(s))}}}class y{constructor(){this.value=0,this.child=null,this.left=null,this.right=null,this.level=0}successor(){let e=this.right;for(;null!=e.left;)e=e.left;return e}predecessor(){let e=this.left;for(;null!=e.left;)e=e.left;for(;null!=e.right;)e=e.right;return e}}function p(e,t,s){if(s<t.length){let[n,r,i]=b(t.charCodeAt(s),e);return(i||null!=r.child)&&(r.child=p(r.child,t,s+1)),n}return null}function*x(e){null!=e&&(yield*x(e.left),yield e,yield*x(e.right))}function b(e,t){let s,n=!1;if(null==t)return s=new y,s.value=e,s.level=1,s.left=null,s.right=null,[s,s,!0];if(e<t.value)[t.left,s,n]=b(e,t.left);else{if(!(e>t.value))return[t,t,!1];[t.right,s,n]=b(e,t.right)}return[t=function(e){if(null==e)return null;if(null==e.right||null==e.right.right)return e;if(e.level==e.right.right.level){let t=e.right;return e.right=t.left,t.left=e,t.level=t.level+1,t}return e}(t=function(e){if(null==e)return null;if(null==e.left)return e;if(e.left.level==e.level){let t=e.left;return e.left=t.right,t.right=e,t}return e}(t)),s,n]}class v{constructor(e,t,s,n,r,i){this.or=e,this.beginGroup=t,this.endGroup=s,this.beginClass=n,this.endClass=r,this.newline=i,this.root=null,this.escapedCharacters=v.initializeEscapeCharacters()}static getDEFAULT(){return new v("|","(",")","[","]","")}static initializeEscapeCharacters(){const t="\\.[]{}()*+-?^$|",s=new e(128);for(let e=0;e<t.length;e++)s.set(t.charCodeAt(e),!0);return s}add(e){0!=e.length&&(this.root=p(this.root,e,0))}generateStub(e){let t="",s=0,n=0;for(let t of x(e))s++,null!=t.child&&n++;const r=s-n;if(s>1&&n>0&&(t+=this.beginGroup),r>0){r>1&&(t+=this.beginClass);for(let s of x(e))null==s.child&&(s.value<128&&this.escapedCharacters.get(s.value)&&(t+="\\"),t+=String.fromCharCode(s.value));r>1&&(t+=this.endClass)}if(n>0){r>0&&(t+=this.or);for(let s of x(e))null!=s.child&&(s.value<128&&this.escapedCharacters.get(s.value)&&(t+="\\"),t+=String.fromCharCode(s.value),null!=this.newline&&(t+=this.newline),t+=this.generateStub(s.child),n>1&&(t+=this.or));n>1&&(t=t.substr(0,t.length-1))}return s>1&&n>0&&(t+=this.endGroup),t}generate(){return null==this.root?"":this.generateStub(this.root)}}let m=class{constructor(e,t){this.prefix=e,this.suffixes=t}};class C{constructor(e,t,s){this.trie=e,this.hiraganaList=t,this.remainList=s}static buildProcessor(){const e=new Int16Array([0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,26,31,95,-1,100,121,147,-1,175,182,203,229,251,-1,266,284,291,302,334,-1,379,401,420,432,464,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,50,49,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,28,-1,-1,-1,-1,52,-1,-1,-1,-1,-1,-1,24,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,67,-1,-1,-1,-1,-1,-1,-1,34,-1,-1,-1,-1,-1,-1,76,-1,93,-1,-1,-1,-1,59,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,118,-1,136,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,149,-1,158,-1,23,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,160,-1,-1,-1,-1,177,-1,201,-1,-1,-1,-1,-1,-1,61,-1,-1,-1,-1,-1,-1,-1,-1,44,-1,-1,47,-1,212,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,230,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,248,86,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,269,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,317,-1,-1,-1,-1,-1,293,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,319,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,343,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,360,-1,-1,-1,361,-1,362,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,384,-1,-1,-1,-1,402,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,46,-1,74,-1,-1,-1,-1,85,-1,-1,-1,-1,-1,-1,-1,-1,68,-1,-1,83,-1,427,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,445,-1]),t=new Int16Array([-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,0,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,98,98,147,0,98,99,147,99,98,99,147,100,99,99,98,171,147,270,159,99,98,322,147,135,98,99,152,135,207,99,152,135,134,221,152,310,319,135,319,310,152,199,520,135,134,199,152,221,134,199,214,183,522,221,214,199,522,539,214,527,536,199,536,527,214,-1,-1,216,373,100,214,216,100,100,102,216,100,100,102,102,373,216,102,100,373,-1,-1,216,102,100,-1,100,240,100,102,103,240,-1,102,103,240,103,-1,103,-1,-1,240,-1,-1,103,242,-1,240,-1,242,103,-1,103,242,103,-1,104,-1,266,242,104,-1,266,104,104,242,266,268,-1,296,104,268,266,296,-1,268,104,296,104,-1,104,268,266,296,106,-1,301,268,106,296,301,107,106,106,301,107,-1,-1,106,107,301,107,110,-1,106,107,301,-1,106,-1,303,107,108,107,303,107,108,-1,303,-1,108,324,108,108,303,324,108,-1,-1,324,303,108,108,-1,108,324,108,-1,109,350,-1,324,109,350,-1,-1,109,350,-1,-1,109,-1,109,350,-1,-1,-1,372,109,350,110,372,109,-1,110,372,-1,-1,110,-1,-1,372,-1,110,110,112,-1,372,387,112,110,-1,387,112,110,116,387,-1,-1,112,112,-1,387,113,-1,112,-1,113,387,112,114,113,412,-1,114,-1,412,113,114,113,412,115,-1,113,114,115,412,114,115,115,114,-1,412,-1,114,115,406,-1,423,115,406,115,423,-1,406,115,423,-1,-1,-1,406,-1,423,116,-1,-1,406,116,423,-1,116,116,438,-1,-1,-1,438,116,-1,-1,438,116,116,116,-1,116,438,116,-1,449,453,455,438,449,453,455,-1,449,453,455,-1,-1,-1,449,453,455,-1,-1,118,449,453,455,118,500,-1,-1,118,500,-1,-1,-1,500,118,-1,-1,-1,-1,500,118,118,119,505,118,500,119,505,-1,119,119,505,122,122,122,122,119,505,-1,-1,-1,120,119,505,119,120,119,-1,541,120,-1,120,541,121,120,120,541,121,-1,-1,120,120,541,120,120,120,585,121,541,-1,585,-1,-1,121,585,-1,-1,121,-1,122,585,122,-1,-1,-1,122,585,-1,-1,122,-1,-1,122,122,122,122,122,-1,-1,122,-1,-1,-1,-1,-1,122,-1,-1,-1,122,122]),s=new Int8Array([-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,0,-1,-1,-1,0,-1,-1,-1,0,-1,-1,-1,0,-1,-1,-1,-1,0,0,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,0,1,0,0,0,0,0,1,0,0,0,-1,-1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,-1,0,0,0,0,0,0,-1,0,0,0,0,0,2,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,-1,-1,0,0,0,0,0,1,0,0,0,-1,0,0,1,0,0,0,0,-1,-1,-1,0,0,0,-1,-1,0,-1,0,0,0,-1,-1,0,0,1,-1,0,-1,-1,0,-1,-1,0,0,-1,0,-1,0,0,-1,-1,0,-1,-1,0,-1,0,0,0,-1,0,1,0,0,0,0,-1,0,0,0,0,0,-1,0,0,0,-1,-1,-1,0,-1,0,0,-1,0,0,0,0,0,0,0,1,0,0,-1,-1,0,0,0,1,0,-1,0,0,0,-1,-1,-1,0,0,0,-1,0,-1,0,-1,0,-1,0,0,-1,1,0,0,0,-1,-1,0,0,-1,0,-1,-1,0,-1,-1,0,0,-1,0,0,0,-1,-1,0,0,-1,-1,1,-1,0,0,-1,-1,-1,0,0,0,0,0,-1,-1,0,0,-1,-1,0,-1,-1,0,-1,0,0,0,-1,0,0,0,0,-1,0,0,-1,-1,0,-1,-1,0,1,-1,0,0,-1,0,-1,0,0,-1,0,0,0,-1,0,-1,0,0,0,1,0,0,-1,0,0,0,0,1,-1,0,0,-1,0,-1,-1,0,0,-1,0,1,0,0,0,-1,0,-1,0,-1,-1,-1,0,-1,0,0,-1,-1,0,0,0,-1,-1,0,0,-1,-1,-1,0,0,-1,-1,0,-1,1,0,-1,-1,0,-1,-1,0,0,0,0,0,0,0,-1,0,0,0,-1,-1,-1,0,0,0,-1,-1,0,0,0,0,0,0,-1,-1,0,0,-1,-1,-1,0,0,-1,-1,-1,-1,0,0,1,0,0,-1,0,0,0,-1,-1,0,0,0,0,0,0,0,0,-1,-1,-1,0,0,0,1,0,-1,-1,0,0,-1,-1,0,0,0,0,0,0,-1,-1,-1,0,0,-1,1,-1,0,0,0,-1,0,-1,-1,0,0,-1,-1,1,-1,0,0,0,-1,-1,-1,0,0,-1,-1,0,-1,-1,0,0,0,0,0,-1,-1,0,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,1]),n=new g(e,t,(function(e){return e}),128);return new C(n,["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","、","ー","。","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","「","","」","","","","あ","","","","え","","","","い","","","","","ん","お","","","","","","う","","","","","","ば","っ","びゃ","〜","べ","か","びぇ","っ","び","せ","びぃ","","","し","ぼ","でゅ","びょ","ふゅ","っ","こ","ぶ","ゎ","びゅ","ちゃ","","く","ちゃ","ちぇ","てゅ","","ちぇ","ち","でぃ","ふゃ","ちぃ","ヵ","","ちょ","っ","ヶ","ちょ","でゃ","w","ちゅ","どぅ","でぇ","ちゅ","ふょ","","でぃ","どぁ","っ","ゑ","ふゅ","どぇ","でょ","ゐ","ゎ","どぃ","ヵ","","でゅ","っ","ヶ","どぉ","","","ぢゃ","てぃ","だ","どぅ","ぢぇ","っ","で","ふぁ","ぢぃ","","ぢ","ふぇ","っ","とぅ","ぢょ","ふぃ","ど","","","","ぢゅ","ふぉ","づ","","","ぐぁ","","ふ","が","ぐぇ","","","げ","ぐぃ","っ","","ぎ","","","ぐぉ","","","ご","ぎゃ","","ぐぅ","","ぎぇ","ぐ","","","ぎぃ","","","は","","ふぁ","ぎょ","へ","","ふぇ","っ","ひ","ぎゅ","ふぃ","ひゃ","","じゃ","ほ","ひぇ","ふぉ","じぇ","","ひぃ","ふ","じぃ","","","","ひょ","","じょ","じゃ","","くぁ","ひゅ","じぇ","じゅ","くぇ","か","じ","っ","くぃ","け","","","じょ","き","くぉ","っ","ん","","じゅ","こ","くぅ","","","","きゃ","く","ぁ","","きぇ","","ぇ","","きぃ","","ぃ","ゃ","","っ","きょ","ぇ","ぉ","","","ぃ","きゅ","","ぅ","","","ょ","","","ま","みゃ","","ゅ","め","みぇ","","","み","みぃ","","","っ","","も","みょ","","","","にゃ","む","みゅ","な","にぇ","","","ね","にぃ","","","に","","","にょ","","ん","の","ぱ","","にゅ","ぴゃ","ぺ","ぬ","","ぴぇ","ぴ","","","ぴぃ","","","ぽ","っ","","ぴょ","くぁ","","ぷ","","くぇ","ぴゅ","","ら","くぃ","りゃ","","れ","","りぇ","くぉ","り","っ","りぃ","さ","","く","ろ","せ","りょ","っ","","し","る","","りゅ","","","そ","しゃ","","しゃ","っ","しぇ","す","しぇ","","し","","しぃ","","","","しょ","","しょ","た","","","しゅ","て","しゅ","","","ち","てゃ","","","","てぇ","と","","","てぃ","","っ","つ","","","てょ","","","つぁ","とぁ","ちゃ","てゅ","つぇ","とぇ","ちぇ","","つぃ","とぃ","ちぃ","","","","つぉ","とぉ","ちょ","","","ゔぁ","つ","とぅ","ちゅ","ゔぇ","ゔゃ","","","ゔぃ","ゔぇ","","","","ゔぃ","ゔぉ","","","","","ゔょ","ゔ","っ","わ","うぁ","","ゔゅ","うぇ","うぇ","","","うぃ","うぃ","‥","〜","…","・","を","うぉ","","","","ぁ","う","う","っ","ぇ","","","ゃ","ぃ","","","ぇ","や","ん","ぉ","ぃ","いぇ","","","","ぅ","ょ","","っ","","じゃ","よ","ゅ","","じぇ","","","ゆ","じぃ","","","っ","","『","じょ","』","","","","ざ","じゅ","","","ぜ","","","←","じ","↓","↑","→","","","ぞ","","","","","","ず","","","","","っ"],s)}romajiToHiragana(e){let t="",s=0;for(;s<e.length;){let n=-1,r=-1;for(let t of this.trie.commonPrefixSearch(e.substr(s)))-1!=this.remainList[t]&&(n=t),r++;-1==n?(t+=e.charAt(s),s++):(t+=this.hiraganaList[n],s=s+r-this.remainList[n])}return t}romajiToHiraganaPredictively(e){let t="",s=0;for(;s<e.length;){let n=-1,r=0;for(let t of this.trie.commonPrefixSearch(e.substr(s)))-1!=this.remainList[t]&&(n=t),r++;if(r+s-1==e.length){let n=new Set;for(let t of this.trie.predictiveSearch(e.substr(s)))-1!=this.remainList[t]&&n.add(this.hiraganaList[t]);let r=new Array;for(let e of n)r.push(e);return 1==r.length?(t+=r[0],new m(t,[""])):new m(t,r)}n>=0?(t+=this.hiraganaList[n],s=s+r-1-this.remainList[n]):(t+=e[s],s++)}return new m(t,[""])}}class k{constructor(e,t,s){this.roman=e,this.hiragana=t,this.remain=s,this.index=k.calculateIndex(e)}static _calculateIndex(e,t,s){let n=0;for(let r=0;r<4;r++){const i=r+t;n|=i<e.length&&i<s?e.charCodeAt(i):0,r<3&&(n<<=8)}return n}static calculateIndex(e){return k._calculateIndex(e,0,4)}}const z=[new k("-","ー",0),new k("~","〜",0),new k(".","。",0),new k(",","、",0),new k("z/","・",0),new k("z.","…",0),new k("z,","‥",0),new k("zh","←",0),new k("zj","↓",0),new k("zk","↑",0),new k("zl","→",0),new k("z-","〜",0),new k("z[","『",0),new k("z]","』",0),new k("[","「",0),new k("]","」",0),new k("va","ゔぁ",0),new k("vi","ゔぃ",0),new k("vu","ゔ",0),new k("ve","ゔぇ",0),new k("vo","ゔぉ",0),new k("vya","ゔゃ",0),new k("vyi","ゔぃ",0),new k("vyu","ゔゅ",0),new k("vye","ゔぇ",0),new k("vyo","ゔょ",0),new k("qq","っ",1),new k("vv","っ",1),new k("ll","っ",1),new k("xx","っ",1),new k("kk","っ",1),new k("gg","っ",1),new k("ss","っ",1),new k("zz","っ",1),new k("jj","っ",1),new k("tt","っ",1),new k("dd","っ",1),new k("hh","っ",1),new k("ff","っ",1),new k("bb","っ",1),new k("pp","っ",1),new k("mm","っ",1),new k("yy","っ",1),new k("rr","っ",1),new k("ww","っ",1),new k("www","w",2),new k("cc","っ",1),new k("kya","きゃ",0),new k("kyi","きぃ",0),new k("kyu","きゅ",0),new k("kye","きぇ",0),new k("kyo","きょ",0),new k("gya","ぎゃ",0),new k("gyi","ぎぃ",0),new k("gyu","ぎゅ",0),new k("gye","ぎぇ",0),new k("gyo","ぎょ",0),new k("sya","しゃ",0),new k("syi","しぃ",0),new k("syu","しゅ",0),new k("sye","しぇ",0),new k("syo","しょ",0),new k("sha","しゃ",0),new k("shi","し",0),new k("shu","しゅ",0),new k("she","しぇ",0),new k("sho","しょ",0),new k("zya","じゃ",0),new k("zyi","じぃ",0),new k("zyu","じゅ",0),new k("zye","じぇ",0),new k("zyo","じょ",0),new k("tya","ちゃ",0),new k("tyi","ちぃ",0),new k("tyu","ちゅ",0),new k("tye","ちぇ",0),new k("tyo","ちょ",0),new k("cha","ちゃ",0),new k("chi","ち",0),new k("chu","ちゅ",0),new k("che","ちぇ",0),new k("cho","ちょ",0),new k("cya","ちゃ",0),new k("cyi","ちぃ",0),new k("cyu","ちゅ",0),new k("cye","ちぇ",0),new k("cyo","ちょ",0),new k("dya","ぢゃ",0),new k("dyi","ぢぃ",0),new k("dyu","ぢゅ",0),new k("dye","ぢぇ",0),new k("dyo","ぢょ",0),new k("tsa","つぁ",0),new k("tsi","つぃ",0),new k("tse","つぇ",0),new k("tso","つぉ",0),new k("tha","てゃ",0),new k("thi","てぃ",0),new k("t'i","てぃ",0),new k("thu","てゅ",0),new k("the","てぇ",0),new k("tho","てょ",0),new k("t'yu","てゅ",0),new k("dha","でゃ",0),new k("dhi","でぃ",0),new k("d'i","でぃ",0),new k("dhu","でゅ",0),new k("dhe","でぇ",0),new k("dho","でょ",0),new k("d'yu","でゅ",0),new k("twa","とぁ",0),new k("twi","とぃ",0),new k("twu","とぅ",0),new k("twe","とぇ",0),new k("two","とぉ",0),new k("t'u","とぅ",0),new k("dwa","どぁ",0),new k("dwi","どぃ",0),new k("dwu","どぅ",0),new k("dwe","どぇ",0),new k("dwo","どぉ",0),new k("d'u","どぅ",0),new k("nya","にゃ",0),new k("nyi","にぃ",0),new k("nyu","にゅ",0),new k("nye","にぇ",0),new k("nyo","にょ",0),new k("hya","ひゃ",0),new k("hyi","ひぃ",0),new k("hyu","ひゅ",0),new k("hye","ひぇ",0),new k("hyo","ひょ",0),new k("bya","びゃ",0),new k("byi","びぃ",0),new k("byu","びゅ",0),new k("bye","びぇ",0),new k("byo","びょ",0),new k("pya","ぴゃ",0),new k("pyi","ぴぃ",0),new k("pyu","ぴゅ",0),new k("pye","ぴぇ",0),new k("pyo","ぴょ",0),new k("fa","ふぁ",0),new k("fi","ふぃ",0),new k("fu","ふ",0),new k("fe","ふぇ",0),new k("fo","ふぉ",0),new k("fya","ふゃ",0),new k("fyu","ふゅ",0),new k("fyo","ふょ",0),new k("hwa","ふぁ",0),new k("hwi","ふぃ",0),new k("hwe","ふぇ",0),new k("hwo","ふぉ",0),new k("hwyu","ふゅ",0),new k("mya","みゃ",0),new k("myi","みぃ",0),new k("myu","みゅ",0),new k("mye","みぇ",0),new k("myo","みょ",0),new k("rya","りゃ",0),new k("ryi","りぃ",0),new k("ryu","りゅ",0),new k("rye","りぇ",0),new k("ryo","りょ",0),new k("n'","ん",0),new k("nn","ん",0),new k("n","ん",0),new k("xn","ん",0),new k("a","あ",0),new k("i","い",0),new k("u","う",0),new k("wu","う",0),new k("e","え",0),new k("o","お",0),new k("xa","ぁ",0),new k("xi","ぃ",0),new k("xu","ぅ",0),new k("xe","ぇ",0),new k("xo","ぉ",0),new k("la","ぁ",0),new k("li","ぃ",0),new k("lu","ぅ",0),new k("le","ぇ",0),new k("lo","ぉ",0),new k("lyi","ぃ",0),new k("xyi","ぃ",0),new k("lye","ぇ",0),new k("xye","ぇ",0),new k("ye","いぇ",0),new k("ka","か",0),new k("ki","き",0),new k("ku","く",0),new k("ke","け",0),new k("ko","こ",0),new k("xka","ヵ",0),new k("xke","ヶ",0),new k("lka","ヵ",0),new k("lke","ヶ",0),new k("ga","が",0),new k("gi","ぎ",0),new k("gu","ぐ",0),new k("ge","げ",0),new k("go","ご",0),new k("sa","さ",0),new k("si","し",0),new k("su","す",0),new k("se","せ",0),new k("so","そ",0),new k("ca","か",0),new k("ci","し",0),new k("cu","く",0),new k("ce","せ",0),new k("co","こ",0),new k("qa","くぁ",0),new k("qi","くぃ",0),new k("qu","く",0),new k("qe","くぇ",0),new k("qo","くぉ",0),new k("kwa","くぁ",0),new k("kwi","くぃ",0),new k("kwu","くぅ",0),new k("kwe","くぇ",0),new k("kwo","くぉ",0),new k("gwa","ぐぁ",0),new k("gwi","ぐぃ",0),new k("gwu","ぐぅ",0),new k("gwe","ぐぇ",0),new k("gwo","ぐぉ",0),new k("za","ざ",0),new k("zi","じ",0),new k("zu","ず",0),new k("ze","ぜ",0),new k("zo","ぞ",0),new k("ja","じゃ",0),new k("ji","じ",0),new k("ju","じゅ",0),new k("je","じぇ",0),new k("jo","じょ",0),new k("jya","じゃ",0),new k("jyi","じぃ",0),new k("jyu","じゅ",0),new k("jye","じぇ",0),new k("jyo","じょ",0),new k("ta","た",0),new k("ti","ち",0),new k("tu","つ",0),new k("tsu","つ",0),new k("te","て",0),new k("to","と",0),new k("da","だ",0),new k("di","ぢ",0),new k("du","づ",0),new k("de","で",0),new k("do","ど",0),new k("xtu","っ",0),new k("xtsu","っ",0),new k("ltu","っ",0),new k("ltsu","っ",0),new k("na","な",0),new k("ni","に",0),new k("nu","ぬ",0),new k("ne","ね",0),new k("no","の",0),new k("ha","は",0),new k("hi","ひ",0),new k("hu","ふ",0),new k("fu","ふ",0),new k("he","へ",0),new k("ho","ほ",0),new k("ba","ば",0),new k("bi","び",0),new k("bu","ぶ",0),new k("be","べ",0),new k("bo","ぼ",0),new k("pa","ぱ",0),new k("pi","ぴ",0),new k("pu","ぷ",0),new k("pe","ぺ",0),new k("po","ぽ",0),new k("ma","ま",0),new k("mi","み",0),new k("mu","む",0),new k("me","め",0),new k("mo","も",0),new k("xya","ゃ",0),new k("lya","ゃ",0),new k("ya","や",0),new k("wyi","ゐ",0),new k("xyu","ゅ",0),new k("lyu","ゅ",0),new k("yu","ゆ",0),new k("wye","ゑ",0),new k("xyo","ょ",0),new k("lyo","ょ",0),new k("yo","よ",0),new k("ra","ら",0),new k("ri","り",0),new k("ru","る",0),new k("re","れ",0),new k("ro","ろ",0),new k("xwa","ゎ",0),new k("lwa","ゎ",0),new k("wa","わ",0),new k("wi","うぃ",0),new k("we","うぇ",0),new k("wo","を",0),new k("wha","うぁ",0),new k("whi","うぃ",0),new k("whu","う",0),new k("whe","うぇ",0),new k("who","うぉ",0)].sort(((e,t)=>e.index-t.index)),A=z.map((e=>e.index));class S{constructor(e,t){this.estaglishedHiragana=e,this.predictiveSuffixes=t}}function B(e,s){let n=0,r=A.length;for(let i=0;i<4&&!(e.length<=s+i);i++){const o=k._calculateIndex(e,s,s+i+1);n=t(A,n,r,o),n>=0||(n=-n-1);if(r=t(A,n,r,o+(1<<24-8*i)),r<0&&(r=-r-1),r-n==1)return new Set([z[n]])}const i=new Set;for(let e=n;e<r;e++)i.add(z[e]);return i}exports.BitList=e,exports.BitVector=i,exports.CompactDictionary=u,exports.CompactDictionaryBuilder=class{static build(t){const s=new Array;for(const e of t.keys())try{d.encodeString(e)}catch(t){s.push(e),console.log("skipped the world: "+e)}for(const e of s)t.delete(e);const n=Array.from(t.keys()).sort(),r=f.build(n)[0],i=new Set;for(const e of t.values())for(const t of e)i.add(t);const o=Array.from(i.values()).sort(),w=f.build(o)[0];let l=0;for(const e of t.values())l+=e.length;const h=new Uint32Array(l);let a=0;const c=new e;for(let e=1;e<=r.size()+1;e++){let s=r.reverseLookup(e);c.add(!1);let n=t.get(s);if(null!=n)for(let e=0;e<n.length;e++)c.add(!0),h[a]=w.lookup(n[e]),a++}const u=8+r.edges.length+8*(r.bitVector.size()+63>>>6)+(8+2*w.edges.length+8*(w.bitVector.size()+63>>>6))+(8+8*(c.size+63>>>6)+4*h.length),g=new ArrayBuffer(u),y=new DataView(g);let p=0;y.setInt32(p,r.edges.length),p+=4;for(let e=0;e<r.edges.length;e++){const t=d.encodeChar(r.edges[e]);y.setUint8(p,t),p+=1}y.setInt32(p,r.bitVector.size()),p+=4;const x=r.bitVector.words;for(let e=0;e<x.length>>>1;e++)y.setUint32(p,x[2*e+1]),p+=4,y.setUint32(p,x[2*e]),p+=4;y.setInt32(p,w.edges.length),p+=4;for(let e=0;e<w.edges.length;e++)y.setUint16(p,w.edges[e]),p+=2;y.setInt32(p,w.bitVector.size()),p+=4;const b=w.bitVector.words;for(let e=0;e<b.length>>>1;e++)y.setUint32(p,b[2*e+1]),p+=4,y.setUint32(p,b[2*e]),p+=4;y.setInt32(p,c.size),p+=4;const v=c.size+63>>6;for(let e=0;e<v;e++)y.setUint32(p,c.words[2*e+1]),p+=4,y.setUint32(p,c.words[2*e]),p+=4;y.setInt32(p,h.length),p+=4;for(let e=0;e<h.length;e++)y.setUint32(p,h[e]),p+=4;if(p!==u)throw new Error(`file size is not valid: expected=${u} actual=${p}`);return g}},exports.CompactHiraganaString=d,exports.DoubleArray=g,exports.LOUDSTrie=c,exports.LOUDSTrieBuilder=f,exports.Migemo=class{constructor(){this.dict=null,this.rxop=null,this.processor=C.buildProcessor()}queryAWord(e){const t=null==this.rxop?v.getDEFAULT():new v(this.rxop[0],this.rxop[1],this.rxop[2],this.rxop[3],this.rxop[4],this.rxop[5]);t.add(e);const s=e.toLowerCase();if(null!=this.dict)for(const e of this.dict.predictiveSearch(s))t.add(e);const n=l(e);t.add(n);const r=h(e);t.add(r);const i=this.processor.romajiToHiraganaPredictively(s);for(const e of i.suffixes){const s=i.prefix+e;if(t.add(s),null!=this.dict)for(const e of this.dict.predictiveSearch(s))t.add(e);const n=a(s);t.add(n),t.add(h(n))}return t.generate()}query(e){if(""==e)return"";const t=this.parseQuery(e);let s="";for(const e of t)s+=this.queryAWord(e);return s}setDict(e){this.dict=e}setRxop(e){this.rxop=e}*parseQuery(e){const t=/[^A-Z\s]+|[A-Z]{2,}|([A-Z][^A-Z\s]+)|([A-Z]\s*$)/g;let s;for(;null!==(s=t.exec(e));)yield s[0]}},exports.RomajiPredictiveResult=m,exports.RomajiProcessor2=C,exports.TernaryRegexGenerator=v,exports.binarySearch=t,exports.binarySearchString=function(e,t,s,n){let r=t,i=s-1;for(;r<=i;){const t=r+i>>>1,s=e[t];if(s<n)r=t+1;else{if(!(s>n))return t;i=t-1}}return-(r+1)},exports.binarySearchUint16=s,exports.bitCount=n,exports.findRomanEntryPredicatively=B,exports.han2zen_conv=l,exports.hira2kata_conv=a,exports.numberOfTrailingZeros=r,exports.romajiToHiragana=function(e){if(0==e.length)return"";let s="",n=0,r=1;for(;n<e.length;){let i=-1,o=0,w=A.length;for(;w-o>1&&r<=e.length;){const s=k._calculateIndex(e,n,r);o=t(A,o,w,s),o>=0?i=o:o=-o-1;w=t(A,o,w,s+(1<<32-8*(r-n))),w<0&&(w=-w-1),r++}if(i>=0){const e=z[i];s+=e.hiragana,n=n+e.roman.length-e.remain,r=n+1}else s+=e.charAt(n),n++,r=n+1}return s},exports.romajiToHiraganaPredictively=function(e){if(0==e.length)return new S("",new Set([""]));let s="",n=0,r=1;for(;n<e.length;){let i=-1,o=0,w=A.length;for(;w-o>1&&r<=e.length;){const s=k._calculateIndex(e,n,r);o=t(A,o,w,s),o>=0?i=o:o=-o-1;w=t(A,o,w,s+(1<<32-8*(r-n))),w<0&&(w=-w-1),r++}if(r>e.length&&w-o>1){const t=new Set;for(let s=o;s<w;s++){const n=z[s];if(n.remain>0){let s=B(e,r-1-n.remain);for(let e of s)0==e.remain&&t.add(n.hiragana+e.hiragana)}else t.add(n.hiragana)}return new S(s.toString(),t)}if(i>=0){const e=z[i];s+=e.hiragana,n=n+e.roman.length-e.remain,r=n+1}else s+=e.charAt(n),n++,r=n+1}return new S(s.toString(),new Set([""]))},exports.zen2han_conv=h;
|