Obsidian_Starter_Template/.obsidian/plugins/obsidian-completr/main.js
Nicolai.vanderstorm - DSV 5d48341cc7 Initial commit
2024-05-21 15:51:11 +02:00

80684 lines
1003 KiB
JavaScript

/*
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
if you want to view the source, please visit the github repository of this plugin
*/
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __commonJS = (cb, mod) => function __require() {
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
};
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// node_modules/jschardet/src/constants.js
var require_constants = __commonJS({
"node_modules/jschardet/src/constants.js"(exports, module2) {
module2.exports = {
detecting: 0,
foundIt: 1,
notMe: 2,
start: 0,
error: 1,
itsMe: 2,
SHORTCUT_THRESHOLD: 0.95
};
}
});
// node_modules/jschardet/src/charsetprober.js
var require_charsetprober = __commonJS({
"node_modules/jschardet/src/charsetprober.js"(exports, module2) {
var constants = require_constants();
function CharSetProber() {
this.reset = function() {
this._mState = constants.detecting;
};
this.getCharsetName = function() {
return null;
};
this.feed = function(aBuf) {
};
this.getState = function() {
return this._mState;
};
this.getConfidence = function() {
return 0;
};
this.filterHighBitOnly = function(aBuf) {
aBuf = aBuf.replace(/[\x00-\x7F]+/g, " ");
return aBuf;
};
this.filterWithoutEnglishLetters = function(aBuf) {
aBuf = aBuf.replace(/[A-Za-z]+/g, " ");
return aBuf;
};
this.filterWithEnglishLetters = function(aBuf) {
var result = "";
var inTag = false;
var prev = 0;
for (var curr = 0; curr < aBuf.length; curr++) {
var c = aBuf[curr];
if (c == ">") {
inTag = false;
} else if (c == "<") {
inTag = true;
}
var isAlpha = /[a-zA-Z]/.test(c);
var isASCII = /^[\x00-\x7F]*$/.test(c);
if (isASCII && !isAlpha) {
if (curr > prev && !inTag) {
result = result + aBuf.substring(prev, curr) + " ";
}
prev = curr + 1;
}
}
if (!inTag) {
result = result + aBuf.substring(prev);
}
return result;
};
}
module2.exports = CharSetProber;
}
});
// node_modules/jschardet/src/logger.js
var require_logger = __commonJS({
"node_modules/jschardet/src/logger.js"(exports) {
exports.log = function() {
};
exports.setLogger = function setLogger(loggerFunction) {
exports.enabled = true;
exports.log = loggerFunction;
};
}
});
// node_modules/jschardet/src/charsetgroupprober.js
var require_charsetgroupprober = __commonJS({
"node_modules/jschardet/src/charsetgroupprober.js"(exports, module2) {
var constants = require_constants();
var CharSetProber = require_charsetprober();
var logger = require_logger();
function CharSetGroupProber() {
CharSetProber.apply(this);
var self = this;
function init() {
self._mActiveNum = 0;
self._mProbers = [];
self._mBestGuessProber = null;
}
this.reset = function() {
CharSetGroupProber.prototype.reset.apply(this);
this._mActiveNum = 0;
for (var i = 0, prober; prober = this._mProbers[i]; i++) {
if (prober) {
prober.reset();
prober.active = true;
this._mActiveNum++;
}
}
this._mBestGuessProber = null;
};
this.getCharsetName = function() {
if (!this._mBestGuessProber) {
this.getConfidence();
if (!this._mBestGuessProber)
return null;
}
return this._mBestGuessProber.getCharsetName();
};
this.feed = function(aBuf) {
for (var i = 0, prober; prober = this._mProbers[i]; i++) {
if (!prober || !prober.active)
continue;
var st = prober.feed(aBuf);
if (!st)
continue;
if (st == constants.foundIt) {
this._mBestGuessProber = prober;
return this.getState();
} else if (st == constants.notMe) {
prober.active = false;
this._mActiveNum--;
if (this._mActiveNum <= 0) {
this._mState = constants.notMe;
return this.getState();
}
}
}
return this.getState();
};
this.getConfidence = function() {
var st = this.getState();
if (st == constants.foundIt) {
return 0.99;
} else if (st == constants.notMe) {
return 0.01;
}
var bestConf = 0;
this._mBestGuessProber = null;
for (var i = 0, prober; prober = this._mProbers[i]; i++) {
if (!prober)
continue;
if (!prober.active) {
logger.log(prober.getCharsetName() + " not active\n");
continue;
}
var cf = prober.getConfidence();
logger.log(prober.getCharsetName() + " confidence = " + cf + "\n");
if (bestConf < cf) {
bestConf = cf;
this._mBestGuessProber = prober;
}
}
if (!this._mBestGuessProber)
return 0;
return bestConf;
};
init();
}
CharSetGroupProber.prototype = new CharSetProber();
module2.exports = CharSetGroupProber;
}
});
// node_modules/jschardet/src/codingstatemachine.js
var require_codingstatemachine = __commonJS({
"node_modules/jschardet/src/codingstatemachine.js"(exports, module2) {
var constants = require_constants();
function CodingStateMachine(sm) {
var self = this;
function init(sm2) {
self._mModel = sm2;
self._mCurrentBytePos = 0;
self._mCurrentCharLen = 0;
self.reset();
}
this.reset = function() {
this._mCurrentState = constants.start;
};
this.nextState = function(c) {
var byteCls = this._mModel.classTable[c.charCodeAt(0)];
if (this._mCurrentState == constants.start) {
this._mCurrentBytePos = 0;
this._mCurrentCharLen = this._mModel.charLenTable[byteCls];
}
this._mCurrentState = this._mModel.stateTable[this._mCurrentState * this._mModel.classFactor + byteCls];
this._mCurrentBytePos++;
return this._mCurrentState;
};
this.getCurrentCharLen = function() {
return this._mCurrentCharLen;
};
this.getCodingStateMachine = function() {
return this._mModel.name;
};
init(sm);
}
module2.exports = CodingStateMachine;
}
});
// node_modules/jschardet/src/mbcharsetprober.js
var require_mbcharsetprober = __commonJS({
"node_modules/jschardet/src/mbcharsetprober.js"(exports, module2) {
var CharSetProber = require_charsetprober();
var constants = require_constants();
var logger = require_logger();
function MultiByteCharSetProber() {
CharSetProber.apply(this);
var self = this;
function init() {
self._mDistributionAnalyzer = null;
self._mCodingSM = null;
self._mLastChar = "\0\0";
}
this.reset = function() {
MultiByteCharSetProber.prototype.reset.apply(this);
if (this._mCodingSM) {
this._mCodingSM.reset();
}
if (this._mDistributionAnalyzer) {
this._mDistributionAnalyzer.reset();
}
this._mLastChar = "\0\0";
};
this.getCharsetName = function() {
};
this.feed = function(aBuf) {
var aLen = aBuf.length;
for (var i = 0; i < aLen; i++) {
var codingState = this._mCodingSM.nextState(aBuf[i]);
if (codingState == constants.error) {
logger.log(this.getCharsetName() + " prober hit error at byte " + i + "\n");
this._mState = constants.notMe;
break;
} else if (codingState == constants.itsMe) {
this._mState = constants.foundIt;
break;
} else if (codingState == constants.start) {
var charLen = this._mCodingSM.getCurrentCharLen();
if (i == 0) {
this._mLastChar[1] = aBuf[0];
this._mDistributionAnalyzer.feed(this._mLastChar, charLen);
} else {
this._mDistributionAnalyzer.feed(aBuf.slice(i - 1, i + 1), charLen);
}
}
}
this._mLastChar[0] = aBuf[aLen - 1];
if (this.getState() == constants.detecting) {
if (this._mDistributionAnalyzer.gotEnoughData() && this.getConfidence() > constants.SHORTCUT_THRESHOLD) {
this._mState = constants.foundIt;
}
}
return this.getState();
};
this.getConfidence = function() {
return this._mDistributionAnalyzer.getConfidence();
};
}
MultiByteCharSetProber.prototype = new CharSetProber();
module2.exports = MultiByteCharSetProber;
}
});
// node_modules/jschardet/src/mbcssm/big5.js
var require_big5 = __commonJS({
"node_modules/jschardet/src/mbcssm/big5.js"(exports, module2) {
var consts = require_constants();
var BIG5_cls = [
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
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,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
1,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
0
];
var BIG5_st = [
consts.error,
consts.start,
consts.start,
3,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.error,
consts.error,
consts.start,
consts.start,
consts.start,
consts.start,
consts.start,
consts.start,
consts.start
];
var Big5CharLenTable = [0, 1, 1, 2, 0];
module2.exports = {
"classTable": BIG5_cls,
"classFactor": 5,
"stateTable": BIG5_st,
"charLenTable": Big5CharLenTable,
"name": "Big5"
};
}
});
// node_modules/jschardet/src/jisfreq.js
var require_jisfreq = __commonJS({
"node_modules/jschardet/src/jisfreq.js"(exports) {
exports.JIS_TYPICAL_DISTRIBUTION_RATIO = 3;
exports.JIS_TABLE_SIZE = 4368;
exports.JISCharToFreqOrder = [
40,
1,
6,
182,
152,
180,
295,
2127,
285,
381,
3295,
4304,
3068,
4606,
3165,
3510,
3511,
1822,
2785,
4607,
1193,
2226,
5070,
4608,
171,
2996,
1247,
18,
179,
5071,
856,
1661,
1262,
5072,
619,
127,
3431,
3512,
3230,
1899,
1700,
232,
228,
1294,
1298,
284,
283,
2041,
2042,
1061,
1062,
48,
49,
44,
45,
433,
434,
1040,
1041,
996,
787,
2997,
1255,
4305,
2108,
4609,
1684,
1648,
5073,
5074,
5075,
5076,
5077,
5078,
3687,
5079,
4610,
5080,
3927,
3928,
5081,
3296,
3432,
290,
2285,
1471,
2187,
5082,
2580,
2825,
1303,
2140,
1739,
1445,
2691,
3375,
1691,
3297,
4306,
4307,
4611,
452,
3376,
1182,
2713,
3688,
3069,
4308,
5083,
5084,
5085,
5086,
5087,
5088,
5089,
5090,
5091,
5092,
5093,
5094,
5095,
5096,
5097,
5098,
5099,
5100,
5101,
5102,
5103,
5104,
5105,
5106,
5107,
5108,
5109,
5110,
5111,
5112,
4097,
5113,
5114,
5115,
5116,
5117,
5118,
5119,
5120,
5121,
5122,
5123,
5124,
5125,
5126,
5127,
5128,
5129,
5130,
5131,
5132,
5133,
5134,
5135,
5136,
5137,
5138,
5139,
5140,
5141,
5142,
5143,
5144,
5145,
5146,
5147,
5148,
5149,
5150,
5151,
5152,
4612,
5153,
5154,
5155,
5156,
5157,
5158,
5159,
5160,
5161,
5162,
5163,
5164,
5165,
5166,
5167,
5168,
5169,
5170,
5171,
5172,
5173,
5174,
5175,
1472,
598,
618,
820,
1205,
1309,
1412,
1858,
1307,
1692,
5176,
5177,
5178,
5179,
5180,
5181,
5182,
1142,
1452,
1234,
1172,
1875,
2043,
2149,
1793,
1382,
2973,
925,
2404,
1067,
1241,
960,
1377,
2935,
1491,
919,
1217,
1865,
2030,
1406,
1499,
2749,
4098,
5183,
5184,
5185,
5186,
5187,
5188,
2561,
4099,
3117,
1804,
2049,
3689,
4309,
3513,
1663,
5189,
3166,
3118,
3298,
1587,
1561,
3433,
5190,
3119,
1625,
2998,
3299,
4613,
1766,
3690,
2786,
4614,
5191,
5192,
5193,
5194,
2161,
26,
3377,
2,
3929,
20,
3691,
47,
4100,
50,
17,
16,
35,
268,
27,
243,
42,
155,
24,
154,
29,
184,
4,
91,
14,
92,
53,
396,
33,
289,
9,
37,
64,
620,
21,
39,
321,
5,
12,
11,
52,
13,
3,
208,
138,
0,
7,
60,
526,
141,
151,
1069,
181,
275,
1591,
83,
132,
1475,
126,
331,
829,
15,
69,
160,
59,
22,
157,
55,
1079,
312,
109,
38,
23,
25,
10,
19,
79,
5195,
61,
382,
1124,
8,
30,
5196,
5197,
5198,
5199,
5200,
5201,
5202,
5203,
5204,
5205,
5206,
89,
62,
74,
34,
2416,
112,
139,
196,
271,
149,
84,
607,
131,
765,
46,
88,
153,
683,
76,
874,
101,
258,
57,
80,
32,
364,
121,
1508,
169,
1547,
68,
235,
145,
2999,
41,
360,
3027,
70,
63,
31,
43,
259,
262,
1383,
99,
533,
194,
66,
93,
846,
217,
192,
56,
106,
58,
565,
280,
272,
311,
256,
146,
82,
308,
71,
100,
128,
214,
655,
110,
261,
104,
1140,
54,
51,
36,
87,
67,
3070,
185,
2618,
2936,
2020,
28,
1066,
2390,
2059,
5207,
5208,
5209,
5210,
5211,
5212,
5213,
5214,
5215,
5216,
4615,
5217,
5218,
5219,
5220,
5221,
5222,
5223,
5224,
5225,
5226,
5227,
5228,
5229,
5230,
5231,
5232,
5233,
5234,
5235,
5236,
3514,
5237,
5238,
5239,
5240,
5241,
5242,
5243,
5244,
2297,
2031,
4616,
4310,
3692,
5245,
3071,
5246,
3598,
5247,
4617,
3231,
3515,
5248,
4101,
4311,
4618,
3808,
4312,
4102,
5249,
4103,
4104,
3599,
5250,
5251,
5252,
5253,
5254,
5255,
5256,
5257,
5258,
5259,
5260,
5261,
5262,
5263,
5264,
5265,
5266,
5267,
5268,
5269,
5270,
5271,
5272,
5273,
5274,
5275,
5276,
5277,
5278,
5279,
5280,
5281,
5282,
5283,
5284,
5285,
5286,
5287,
5288,
5289,
5290,
5291,
5292,
5293,
5294,
5295,
5296,
5297,
5298,
5299,
5300,
5301,
5302,
5303,
5304,
5305,
5306,
5307,
5308,
5309,
5310,
5311,
5312,
5313,
5314,
5315,
5316,
5317,
5318,
5319,
5320,
5321,
5322,
5323,
5324,
5325,
5326,
5327,
5328,
5329,
5330,
5331,
5332,
5333,
5334,
5335,
5336,
5337,
5338,
5339,
5340,
5341,
5342,
5343,
5344,
5345,
5346,
5347,
5348,
5349,
5350,
5351,
5352,
5353,
5354,
5355,
5356,
5357,
5358,
5359,
5360,
5361,
5362,
5363,
5364,
5365,
5366,
5367,
5368,
5369,
5370,
5371,
5372,
5373,
5374,
5375,
5376,
5377,
5378,
5379,
5380,
5381,
363,
642,
2787,
2878,
2788,
2789,
2316,
3232,
2317,
3434,
2011,
165,
1942,
3930,
3931,
3932,
3933,
5382,
4619,
5383,
4620,
5384,
5385,
5386,
5387,
5388,
5389,
5390,
5391,
5392,
5393,
5394,
5395,
5396,
5397,
5398,
5399,
5400,
5401,
5402,
5403,
5404,
5405,
5406,
5407,
5408,
5409,
5410,
5411,
5412,
5413,
5414,
5415,
5416,
5417,
5418,
5419,
5420,
5421,
5422,
5423,
5424,
5425,
5426,
5427,
5428,
5429,
5430,
5431,
5432,
5433,
5434,
5435,
5436,
5437,
5438,
5439,
5440,
5441,
5442,
5443,
5444,
5445,
5446,
5447,
5448,
5449,
5450,
5451,
5452,
5453,
5454,
5455,
5456,
5457,
5458,
5459,
5460,
5461,
5462,
5463,
5464,
5465,
5466,
5467,
5468,
5469,
5470,
5471,
5472,
5473,
5474,
5475,
5476,
5477,
5478,
5479,
5480,
5481,
5482,
5483,
5484,
5485,
5486,
5487,
5488,
5489,
5490,
5491,
5492,
5493,
5494,
5495,
5496,
5497,
5498,
5499,
5500,
5501,
5502,
5503,
5504,
5505,
5506,
5507,
5508,
5509,
5510,
5511,
5512,
5513,
5514,
5515,
5516,
5517,
5518,
5519,
5520,
5521,
5522,
5523,
5524,
5525,
5526,
5527,
5528,
5529,
5530,
5531,
5532,
5533,
5534,
5535,
5536,
5537,
5538,
5539,
5540,
5541,
5542,
5543,
5544,
5545,
5546,
5547,
5548,
5549,
5550,
5551,
5552,
5553,
5554,
5555,
5556,
5557,
5558,
5559,
5560,
5561,
5562,
5563,
5564,
5565,
5566,
5567,
5568,
5569,
5570,
5571,
5572,
5573,
5574,
5575,
5576,
5577,
5578,
5579,
5580,
5581,
5582,
5583,
5584,
5585,
5586,
5587,
5588,
5589,
5590,
5591,
5592,
5593,
5594,
5595,
5596,
5597,
5598,
5599,
5600,
5601,
5602,
5603,
5604,
5605,
5606,
5607,
5608,
5609,
5610,
5611,
5612,
5613,
5614,
5615,
5616,
5617,
5618,
5619,
5620,
5621,
5622,
5623,
5624,
5625,
5626,
5627,
5628,
5629,
5630,
5631,
5632,
5633,
5634,
5635,
5636,
5637,
5638,
5639,
5640,
5641,
5642,
5643,
5644,
5645,
5646,
5647,
5648,
5649,
5650,
5651,
5652,
5653,
5654,
5655,
5656,
5657,
5658,
5659,
5660,
5661,
5662,
5663,
5664,
5665,
5666,
5667,
5668,
5669,
5670,
5671,
5672,
5673,
5674,
5675,
5676,
5677,
5678,
5679,
5680,
5681,
5682,
5683,
5684,
5685,
5686,
5687,
5688,
5689,
5690,
5691,
5692,
5693,
5694,
5695,
5696,
5697,
5698,
5699,
5700,
5701,
5702,
5703,
5704,
5705,
5706,
5707,
5708,
5709,
5710,
5711,
5712,
5713,
5714,
5715,
5716,
5717,
5718,
5719,
5720,
5721,
5722,
5723,
5724,
5725,
5726,
5727,
5728,
5729,
5730,
5731,
5732,
5733,
5734,
5735,
5736,
5737,
5738,
5739,
5740,
5741,
5742,
5743,
5744,
5745,
5746,
5747,
5748,
5749,
5750,
5751,
5752,
5753,
5754,
5755,
5756,
5757,
5758,
5759,
5760,
5761,
5762,
5763,
5764,
5765,
5766,
5767,
5768,
5769,
5770,
5771,
5772,
5773,
5774,
5775,
5776,
5777,
5778,
5779,
5780,
5781,
5782,
5783,
5784,
5785,
5786,
5787,
5788,
5789,
5790,
5791,
5792,
5793,
5794,
5795,
5796,
5797,
5798,
5799,
5800,
5801,
5802,
5803,
5804,
5805,
5806,
5807,
5808,
5809,
5810,
5811,
5812,
5813,
5814,
5815,
5816,
5817,
5818,
5819,
5820,
5821,
5822,
5823,
5824,
5825,
5826,
5827,
5828,
5829,
5830,
5831,
5832,
5833,
5834,
5835,
5836,
5837,
5838,
5839,
5840,
5841,
5842,
5843,
5844,
5845,
5846,
5847,
5848,
5849,
5850,
5851,
5852,
5853,
5854,
5855,
5856,
5857,
5858,
5859,
5860,
5861,
5862,
5863,
5864,
5865,
5866,
5867,
5868,
5869,
5870,
5871,
5872,
5873,
5874,
5875,
5876,
5877,
5878,
5879,
5880,
5881,
5882,
5883,
5884,
5885,
5886,
5887,
5888,
5889,
5890,
5891,
5892,
5893,
5894,
5895,
5896,
5897,
5898,
5899,
5900,
5901,
5902,
5903,
5904,
5905,
5906,
5907,
5908,
5909,
5910,
5911,
5912,
5913,
5914,
5915,
5916,
5917,
5918,
5919,
5920,
5921,
5922,
5923,
5924,
5925,
5926,
5927,
5928,
5929,
5930,
5931,
5932,
5933,
5934,
5935,
5936,
5937,
5938,
5939,
5940,
5941,
5942,
5943,
5944,
5945,
5946,
5947,
5948,
5949,
5950,
5951,
5952,
5953,
5954,
5955,
5956,
5957,
5958,
5959,
5960,
5961,
5962,
5963,
5964,
5965,
5966,
5967,
5968,
5969,
5970,
5971,
5972,
5973,
5974,
5975,
5976,
5977,
5978,
5979,
5980,
5981,
5982,
5983,
5984,
5985,
5986,
5987,
5988,
5989,
5990,
5991,
5992,
5993,
5994,
5995,
5996,
5997,
5998,
5999,
6e3,
6001,
6002,
6003,
6004,
6005,
6006,
6007,
6008,
6009,
6010,
6011,
6012,
6013,
6014,
6015,
6016,
6017,
6018,
6019,
6020,
6021,
6022,
6023,
6024,
6025,
6026,
6027,
6028,
6029,
6030,
6031,
6032,
6033,
6034,
6035,
6036,
6037,
6038,
6039,
6040,
6041,
6042,
6043,
6044,
6045,
6046,
6047,
6048,
6049,
6050,
6051,
6052,
6053,
6054,
6055,
6056,
6057,
6058,
6059,
6060,
6061,
6062,
6063,
6064,
6065,
6066,
6067,
6068,
6069,
6070,
6071,
6072,
6073,
6074,
6075,
6076,
6077,
6078,
6079,
6080,
6081,
6082,
6083,
6084,
6085,
6086,
6087,
6088,
6089,
6090,
6091,
6092,
6093,
6094,
6095,
6096,
6097,
6098,
6099,
6100,
6101,
6102,
6103,
6104,
6105,
6106,
6107,
6108,
6109,
6110,
6111,
6112,
6113,
6114,
2044,
2060,
4621,
997,
1235,
473,
1186,
4622,
920,
3378,
6115,
6116,
379,
1108,
4313,
2657,
2735,
3934,
6117,
3809,
636,
3233,
573,
1026,
3693,
3435,
2974,
3300,
2298,
4105,
854,
2937,
2463,
393,
2581,
2417,
539,
752,
1280,
2750,
2480,
140,
1161,
440,
708,
1569,
665,
2497,
1746,
1291,
1523,
3e3,
164,
1603,
847,
1331,
537,
1997,
486,
508,
1693,
2418,
1970,
2227,
878,
1220,
299,
1030,
969,
652,
2751,
624,
1137,
3301,
2619,
65,
3302,
2045,
1761,
1859,
3120,
1930,
3694,
3516,
663,
1767,
852,
835,
3695,
269,
767,
2826,
2339,
1305,
896,
1150,
770,
1616,
6118,
506,
1502,
2075,
1012,
2519,
775,
2520,
2975,
2340,
2938,
4314,
3028,
2086,
1224,
1943,
2286,
6119,
3072,
4315,
2240,
1273,
1987,
3935,
1557,
175,
597,
985,
3517,
2419,
2521,
1416,
3029,
585,
938,
1931,
1007,
1052,
1932,
1685,
6120,
3379,
4316,
4623,
804,
599,
3121,
1333,
2128,
2539,
1159,
1554,
2032,
3810,
687,
2033,
2904,
952,
675,
1467,
3436,
6121,
2241,
1096,
1786,
2440,
1543,
1924,
980,
1813,
2228,
781,
2692,
1879,
728,
1918,
3696,
4624,
548,
1950,
4625,
1809,
1088,
1356,
3303,
2522,
1944,
502,
972,
373,
513,
2827,
586,
2377,
2391,
1003,
1976,
1631,
6122,
2464,
1084,
648,
1776,
4626,
2141,
324,
962,
2012,
2177,
2076,
1384,
742,
2178,
1448,
1173,
1810,
222,
102,
301,
445,
125,
2420,
662,
2498,
277,
200,
1476,
1165,
1068,
224,
2562,
1378,
1446,
450,
1880,
659,
791,
582,
4627,
2939,
3936,
1516,
1274,
555,
2099,
3697,
1020,
1389,
1526,
3380,
1762,
1723,
1787,
2229,
412,
2114,
1900,
2392,
3518,
512,
2597,
427,
1925,
2341,
3122,
1653,
1686,
2465,
2499,
697,
330,
273,
380,
2162,
951,
832,
780,
991,
1301,
3073,
965,
2270,
3519,
668,
2523,
2636,
1286,
535,
1407,
518,
671,
957,
2658,
2378,
267,
611,
2197,
3030,
6123,
248,
2299,
967,
1799,
2356,
850,
1418,
3437,
1876,
1256,
1480,
2828,
1718,
6124,
6125,
1755,
1664,
2405,
6126,
4628,
2879,
2829,
499,
2179,
676,
4629,
557,
2329,
2214,
2090,
325,
3234,
464,
811,
3001,
992,
2342,
2481,
1232,
1469,
303,
2242,
466,
1070,
2163,
603,
1777,
2091,
4630,
2752,
4631,
2714,
322,
2659,
1964,
1768,
481,
2188,
1463,
2330,
2857,
3600,
2092,
3031,
2421,
4632,
2318,
2070,
1849,
2598,
4633,
1302,
2254,
1668,
1701,
2422,
3811,
2905,
3032,
3123,
2046,
4106,
1763,
1694,
4634,
1604,
943,
1724,
1454,
917,
868,
2215,
1169,
2940,
552,
1145,
1800,
1228,
1823,
1955,
316,
1080,
2510,
361,
1807,
2830,
4107,
2660,
3381,
1346,
1423,
1134,
4108,
6127,
541,
1263,
1229,
1148,
2540,
545,
465,
1833,
2880,
3438,
1901,
3074,
2482,
816,
3937,
713,
1788,
2500,
122,
1575,
195,
1451,
2501,
1111,
6128,
859,
374,
1225,
2243,
2483,
4317,
390,
1033,
3439,
3075,
2524,
1687,
266,
793,
1440,
2599,
946,
779,
802,
507,
897,
1081,
528,
2189,
1292,
711,
1866,
1725,
1167,
1640,
753,
398,
2661,
1053,
246,
348,
4318,
137,
1024,
3440,
1600,
2077,
2129,
825,
4319,
698,
238,
521,
187,
2300,
1157,
2423,
1641,
1605,
1464,
1610,
1097,
2541,
1260,
1436,
759,
2255,
1814,
2150,
705,
3235,
409,
2563,
3304,
561,
3033,
2005,
2564,
726,
1956,
2343,
3698,
4109,
949,
3812,
3813,
3520,
1669,
653,
1379,
2525,
881,
2198,
632,
2256,
1027,
778,
1074,
733,
1957,
514,
1481,
2466,
554,
2180,
702,
3938,
1606,
1017,
1398,
6129,
1380,
3521,
921,
993,
1313,
594,
449,
1489,
1617,
1166,
768,
1426,
1360,
495,
1794,
3601,
1177,
3602,
1170,
4320,
2344,
476,
425,
3167,
4635,
3168,
1424,
401,
2662,
1171,
3382,
1998,
1089,
4110,
477,
3169,
474,
6130,
1909,
596,
2831,
1842,
494,
693,
1051,
1028,
1207,
3076,
606,
2115,
727,
2790,
1473,
1115,
743,
3522,
630,
805,
1532,
4321,
2021,
366,
1057,
838,
684,
1114,
2142,
4322,
2050,
1492,
1892,
1808,
2271,
3814,
2424,
1971,
1447,
1373,
3305,
1090,
1536,
3939,
3523,
3306,
1455,
2199,
336,
369,
2331,
1035,
584,
2393,
902,
718,
2600,
6131,
2753,
463,
2151,
1149,
1611,
2467,
715,
1308,
3124,
1268,
343,
1413,
3236,
1517,
1347,
2663,
2093,
3940,
2022,
1131,
1553,
2100,
2941,
1427,
3441,
2942,
1323,
2484,
6132,
1980,
872,
2368,
2441,
2943,
320,
2369,
2116,
1082,
679,
1933,
3941,
2791,
3815,
625,
1143,
2023,
422,
2200,
3816,
6133,
730,
1695,
356,
2257,
1626,
2301,
2858,
2637,
1627,
1778,
937,
883,
2906,
2693,
3002,
1769,
1086,
400,
1063,
1325,
3307,
2792,
4111,
3077,
456,
2345,
1046,
747,
6134,
1524,
884,
1094,
3383,
1474,
2164,
1059,
974,
1688,
2181,
2258,
1047,
345,
1665,
1187,
358,
875,
3170,
305,
660,
3524,
2190,
1334,
1135,
3171,
1540,
1649,
2542,
1527,
927,
968,
2793,
885,
1972,
1850,
482,
500,
2638,
1218,
1109,
1085,
2543,
1654,
2034,
876,
78,
2287,
1482,
1277,
861,
1675,
1083,
1779,
724,
2754,
454,
397,
1132,
1612,
2332,
893,
672,
1237,
257,
2259,
2370,
135,
3384,
337,
2244,
547,
352,
340,
709,
2485,
1400,
788,
1138,
2511,
540,
772,
1682,
2260,
2272,
2544,
2013,
1843,
1902,
4636,
1999,
1562,
2288,
4637,
2201,
1403,
1533,
407,
576,
3308,
1254,
2071,
978,
3385,
170,
136,
1201,
3125,
2664,
3172,
2394,
213,
912,
873,
3603,
1713,
2202,
699,
3604,
3699,
813,
3442,
493,
531,
1054,
468,
2907,
1483,
304,
281,
4112,
1726,
1252,
2094,
339,
2319,
2130,
2639,
756,
1563,
2944,
748,
571,
2976,
1588,
2425,
2715,
1851,
1460,
2426,
1528,
1392,
1973,
3237,
288,
3309,
685,
3386,
296,
892,
2716,
2216,
1570,
2245,
722,
1747,
2217,
905,
3238,
1103,
6135,
1893,
1441,
1965,
251,
1805,
2371,
3700,
2601,
1919,
1078,
75,
2182,
1509,
1592,
1270,
2640,
4638,
2152,
6136,
3310,
3817,
524,
706,
1075,
292,
3818,
1756,
2602,
317,
98,
3173,
3605,
3525,
1844,
2218,
3819,
2502,
814,
567,
385,
2908,
1534,
6137,
534,
1642,
3239,
797,
6138,
1670,
1529,
953,
4323,
188,
1071,
538,
178,
729,
3240,
2109,
1226,
1374,
2e3,
2357,
2977,
731,
2468,
1116,
2014,
2051,
6139,
1261,
1593,
803,
2859,
2736,
3443,
556,
682,
823,
1541,
6140,
1369,
2289,
1706,
2794,
845,
462,
2603,
2665,
1361,
387,
162,
2358,
1740,
739,
1770,
1720,
1304,
1401,
3241,
1049,
627,
1571,
2427,
3526,
1877,
3942,
1852,
1500,
431,
1910,
1503,
677,
297,
2795,
286,
1433,
1038,
1198,
2290,
1133,
1596,
4113,
4639,
2469,
1510,
1484,
3943,
6141,
2442,
108,
712,
4640,
2372,
866,
3701,
2755,
3242,
1348,
834,
1945,
1408,
3527,
2395,
3243,
1811,
824,
994,
1179,
2110,
1548,
1453,
790,
3003,
690,
4324,
4325,
2832,
2909,
3820,
1860,
3821,
225,
1748,
310,
346,
1780,
2470,
821,
1993,
2717,
2796,
828,
877,
3528,
2860,
2471,
1702,
2165,
2910,
2486,
1789,
453,
359,
2291,
1676,
73,
1164,
1461,
1127,
3311,
421,
604,
314,
1037,
589,
116,
2487,
737,
837,
1180,
111,
244,
735,
6142,
2261,
1861,
1362,
986,
523,
418,
581,
2666,
3822,
103,
855,
503,
1414,
1867,
2488,
1091,
657,
1597,
979,
605,
1316,
4641,
1021,
2443,
2078,
2001,
1209,
96,
587,
2166,
1032,
260,
1072,
2153,
173,
94,
226,
3244,
819,
2006,
4642,
4114,
2203,
231,
1744,
782,
97,
2667,
786,
3387,
887,
391,
442,
2219,
4326,
1425,
6143,
2694,
633,
1544,
1202,
483,
2015,
592,
2052,
1958,
2472,
1655,
419,
129,
4327,
3444,
3312,
1714,
1257,
3078,
4328,
1518,
1098,
865,
1310,
1019,
1885,
1512,
1734,
469,
2444,
148,
773,
436,
1815,
1868,
1128,
1055,
4329,
1245,
2756,
3445,
2154,
1934,
1039,
4643,
579,
1238,
932,
2320,
353,
205,
801,
115,
2428,
944,
2321,
1881,
399,
2565,
1211,
678,
766,
3944,
335,
2101,
1459,
1781,
1402,
3945,
2737,
2131,
1010,
844,
981,
1326,
1013,
550,
1816,
1545,
2620,
1335,
1008,
371,
2881,
936,
1419,
1613,
3529,
1456,
1395,
2273,
1834,
2604,
1317,
2738,
2503,
416,
1643,
4330,
806,
1126,
229,
591,
3946,
1314,
1981,
1576,
1837,
1666,
347,
1790,
977,
3313,
764,
2861,
1853,
688,
2429,
1920,
1462,
77,
595,
415,
2002,
3034,
798,
1192,
4115,
6144,
2978,
4331,
3035,
2695,
2582,
2072,
2566,
430,
2430,
1727,
842,
1396,
3947,
3702,
613,
377,
278,
236,
1417,
3388,
3314,
3174,
757,
1869,
107,
3530,
6145,
1194,
623,
2262,
207,
1253,
2167,
3446,
3948,
492,
1117,
1935,
536,
1838,
2757,
1246,
4332,
696,
2095,
2406,
1393,
1572,
3175,
1782,
583,
190,
253,
1390,
2230,
830,
3126,
3389,
934,
3245,
1703,
1749,
2979,
1870,
2545,
1656,
2204,
869,
2346,
4116,
3176,
1817,
496,
1764,
4644,
942,
1504,
404,
1903,
1122,
1580,
3606,
2945,
1022,
515,
372,
1735,
955,
2431,
3036,
6146,
2797,
1110,
2302,
2798,
617,
6147,
441,
762,
1771,
3447,
3607,
3608,
1904,
840,
3037,
86,
939,
1385,
572,
1370,
2445,
1336,
114,
3703,
898,
294,
203,
3315,
703,
1583,
2274,
429,
961,
4333,
1854,
1951,
3390,
2373,
3704,
4334,
1318,
1381,
966,
1911,
2322,
1006,
1155,
309,
989,
458,
2718,
1795,
1372,
1203,
252,
1689,
1363,
3177,
517,
1936,
168,
1490,
562,
193,
3823,
1042,
4117,
1835,
551,
470,
4645,
395,
489,
3448,
1871,
1465,
2583,
2641,
417,
1493,
279,
1295,
511,
1236,
1119,
72,
1231,
1982,
1812,
3004,
871,
1564,
984,
3449,
1667,
2696,
2096,
4646,
2347,
2833,
1673,
3609,
695,
3246,
2668,
807,
1183,
4647,
890,
388,
2333,
1801,
1457,
2911,
1765,
1477,
1031,
3316,
3317,
1278,
3391,
2799,
2292,
2526,
163,
3450,
4335,
2669,
1404,
1802,
6148,
2323,
2407,
1584,
1728,
1494,
1824,
1269,
298,
909,
3318,
1034,
1632,
375,
776,
1683,
2061,
291,
210,
1123,
809,
1249,
1002,
2642,
3038,
206,
1011,
2132,
144,
975,
882,
1565,
342,
667,
754,
1442,
2143,
1299,
2303,
2062,
447,
626,
2205,
1221,
2739,
2912,
1144,
1214,
2206,
2584,
760,
1715,
614,
950,
1281,
2670,
2621,
810,
577,
1287,
2546,
4648,
242,
2168,
250,
2643,
691,
123,
2644,
647,
313,
1029,
689,
1357,
2946,
1650,
216,
771,
1339,
1306,
808,
2063,
549,
913,
1371,
2913,
2914,
6149,
1466,
1092,
1174,
1196,
1311,
2605,
2396,
1783,
1796,
3079,
406,
2671,
2117,
3949,
4649,
487,
1825,
2220,
6150,
2915,
448,
2348,
1073,
6151,
2397,
1707,
130,
900,
1598,
329,
176,
1959,
2527,
1620,
6152,
2275,
4336,
3319,
1983,
2191,
3705,
3610,
2155,
3706,
1912,
1513,
1614,
6153,
1988,
646,
392,
2304,
1589,
3320,
3039,
1826,
1239,
1352,
1340,
2916,
505,
2567,
1709,
1437,
2408,
2547,
906,
6154,
2672,
384,
1458,
1594,
1100,
1329,
710,
423,
3531,
2064,
2231,
2622,
1989,
2673,
1087,
1882,
333,
841,
3005,
1296,
2882,
2379,
580,
1937,
1827,
1293,
2585,
601,
574,
249,
1772,
4118,
2079,
1120,
645,
901,
1176,
1690,
795,
2207,
478,
1434,
516,
1190,
1530,
761,
2080,
930,
1264,
355,
435,
1552,
644,
1791,
987,
220,
1364,
1163,
1121,
1538,
306,
2169,
1327,
1222,
546,
2645,
218,
241,
610,
1704,
3321,
1984,
1839,
1966,
2528,
451,
6155,
2586,
3707,
2568,
907,
3178,
254,
2947,
186,
1845,
4650,
745,
432,
1757,
428,
1633,
888,
2246,
2221,
2489,
3611,
2118,
1258,
1265,
956,
3127,
1784,
4337,
2490,
319,
510,
119,
457,
3612,
274,
2035,
2007,
4651,
1409,
3128,
970,
2758,
590,
2800,
661,
2247,
4652,
2008,
3950,
1420,
1549,
3080,
3322,
3951,
1651,
1375,
2111,
485,
2491,
1429,
1156,
6156,
2548,
2183,
1495,
831,
1840,
2529,
2446,
501,
1657,
307,
1894,
3247,
1341,
666,
899,
2156,
1539,
2549,
1559,
886,
349,
2208,
3081,
2305,
1736,
3824,
2170,
2759,
1014,
1913,
1386,
542,
1397,
2948,
490,
368,
716,
362,
159,
282,
2569,
1129,
1658,
1288,
1750,
2674,
276,
649,
2016,
751,
1496,
658,
1818,
1284,
1862,
2209,
2087,
2512,
3451,
622,
2834,
376,
117,
1060,
2053,
1208,
1721,
1101,
1443,
247,
1250,
3179,
1792,
3952,
2760,
2398,
3953,
6157,
2144,
3708,
446,
2432,
1151,
2570,
3452,
2447,
2761,
2835,
1210,
2448,
3082,
424,
2222,
1251,
2449,
2119,
2836,
504,
1581,
4338,
602,
817,
857,
3825,
2349,
2306,
357,
3826,
1470,
1883,
2883,
255,
958,
929,
2917,
3248,
302,
4653,
1050,
1271,
1751,
2307,
1952,
1430,
2697,
2719,
2359,
354,
3180,
777,
158,
2036,
4339,
1659,
4340,
4654,
2308,
2949,
2248,
1146,
2232,
3532,
2720,
1696,
2623,
3827,
6158,
3129,
1550,
2698,
1485,
1297,
1428,
637,
931,
2721,
2145,
914,
2550,
2587,
81,
2450,
612,
827,
2646,
1242,
4655,
1118,
2884,
472,
1855,
3181,
3533,
3534,
569,
1353,
2699,
1244,
1758,
2588,
4119,
2009,
2762,
2171,
3709,
1312,
1531,
6159,
1152,
1938,
134,
1830,
471,
3710,
2276,
1112,
1535,
3323,
3453,
3535,
982,
1337,
2950,
488,
826,
674,
1058,
1628,
4120,
2017,
522,
2399,
211,
568,
1367,
3454,
350,
293,
1872,
1139,
3249,
1399,
1946,
3006,
1300,
2360,
3324,
588,
736,
6160,
2606,
744,
669,
3536,
3828,
6161,
1358,
199,
723,
848,
933,
851,
1939,
1505,
1514,
1338,
1618,
1831,
4656,
1634,
3613,
443,
2740,
3829,
717,
1947,
491,
1914,
6162,
2551,
1542,
4121,
1025,
6163,
1099,
1223,
198,
3040,
2722,
370,
410,
1905,
2589,
998,
1248,
3182,
2380,
519,
1449,
4122,
1710,
947,
928,
1153,
4341,
2277,
344,
2624,
1511,
615,
105,
161,
1212,
1076,
1960,
3130,
2054,
1926,
1175,
1906,
2473,
414,
1873,
2801,
6164,
2309,
315,
1319,
3325,
318,
2018,
2146,
2157,
963,
631,
223,
4342,
4343,
2675,
479,
3711,
1197,
2625,
3712,
2676,
2361,
6165,
4344,
4123,
6166,
2451,
3183,
1886,
2184,
1674,
1330,
1711,
1635,
1506,
799,
219,
3250,
3083,
3954,
1677,
3713,
3326,
2081,
3614,
1652,
2073,
4657,
1147,
3041,
1752,
643,
1961,
147,
1974,
3955,
6167,
1716,
2037,
918,
3007,
1994,
120,
1537,
118,
609,
3184,
4345,
740,
3455,
1219,
332,
1615,
3830,
6168,
1621,
2980,
1582,
783,
212,
553,
2350,
3714,
1349,
2433,
2082,
4124,
889,
6169,
2310,
1275,
1410,
973,
166,
1320,
3456,
1797,
1215,
3185,
2885,
1846,
2590,
2763,
4658,
629,
822,
3008,
763,
940,
1990,
2862,
439,
2409,
1566,
1240,
1622,
926,
1282,
1907,
2764,
654,
2210,
1607,
327,
1130,
3956,
1678,
1623,
6170,
2434,
2192,
686,
608,
3831,
3715,
903,
3957,
3042,
6171,
2741,
1522,
1915,
1105,
1555,
2552,
1359,
323,
3251,
4346,
3457,
738,
1354,
2553,
2311,
2334,
1828,
2003,
3832,
1753,
2351,
1227,
6172,
1887,
4125,
1478,
6173,
2410,
1874,
1712,
1847,
520,
1204,
2607,
264,
4659,
836,
2677,
2102,
600,
4660,
3833,
2278,
3084,
6174,
4347,
3615,
1342,
640,
532,
543,
2608,
1888,
2400,
2591,
1009,
4348,
1497,
341,
1737,
3616,
2723,
1394,
529,
3252,
1321,
983,
4661,
1515,
2120,
971,
2592,
924,
287,
1662,
3186,
4349,
2700,
4350,
1519,
908,
1948,
2452,
156,
796,
1629,
1486,
2223,
2055,
694,
4126,
1259,
1036,
3392,
1213,
2249,
2742,
1889,
1230,
3958,
1015,
910,
408,
559,
3617,
4662,
746,
725,
935,
4663,
3959,
3009,
1289,
563,
867,
4664,
3960,
1567,
2981,
2038,
2626,
988,
2263,
2381,
4351,
143,
2374,
704,
1895,
6175,
1188,
3716,
2088,
673,
3085,
2362,
4352,
484,
1608,
1921,
2765,
2918,
215,
904,
3618,
3537,
894,
509,
976,
3043,
2701,
3961,
4353,
2837,
2982,
498,
6176,
6177,
1102,
3538,
1332,
3393,
1487,
1636,
1637,
233,
245,
3962,
383,
650,
995,
3044,
460,
1520,
1206,
2352,
749,
3327,
530,
700,
389,
1438,
1560,
1773,
3963,
2264,
719,
2951,
2724,
3834,
870,
1832,
1644,
1e3,
839,
2474,
3717,
197,
1630,
3394,
365,
2886,
3964,
1285,
2133,
734,
922,
818,
1106,
732,
480,
2083,
1774,
3458,
923,
2279,
1350,
221,
3086,
85,
2233,
2234,
3835,
1585,
3010,
2147,
1387,
1705,
2382,
1619,
2475,
133,
239,
2802,
1991,
1016,
2084,
2383,
411,
2838,
1113,
651,
1985,
1160,
3328,
990,
1863,
3087,
1048,
1276,
2647,
265,
2627,
1599,
3253,
2056,
150,
638,
2019,
656,
853,
326,
1479,
680,
1439,
4354,
1001,
1759,
413,
3459,
3395,
2492,
1431,
459,
4355,
1125,
3329,
2265,
1953,
1450,
2065,
2863,
849,
351,
2678,
3131,
3254,
3255,
1104,
1577,
227,
1351,
1645,
2453,
2193,
1421,
2887,
812,
2121,
634,
95,
2435,
201,
2312,
4665,
1646,
1671,
2743,
1601,
2554,
2702,
2648,
2280,
1315,
1366,
2089,
3132,
1573,
3718,
3965,
1729,
1189,
328,
2679,
1077,
1940,
1136,
558,
1283,
964,
1195,
621,
2074,
1199,
1743,
3460,
3619,
1896,
1916,
1890,
3836,
2952,
1154,
2112,
1064,
862,
378,
3011,
2066,
2113,
2803,
1568,
2839,
6178,
3088,
2919,
1941,
1660,
2004,
1992,
2194,
142,
707,
1590,
1708,
1624,
1922,
1023,
1836,
1233,
1004,
2313,
789,
741,
3620,
6179,
1609,
2411,
1200,
4127,
3719,
3720,
4666,
2057,
3721,
593,
2840,
367,
2920,
1878,
6180,
3461,
1521,
628,
1168,
692,
2211,
2649,
300,
720,
2067,
2571,
2953,
3396,
959,
2504,
3966,
3539,
3462,
1977,
701,
6181,
954,
1043,
800,
681,
183,
3722,
1803,
1730,
3540,
4128,
2103,
815,
2314,
174,
467,
230,
2454,
1093,
2134,
755,
3541,
3397,
1141,
1162,
6182,
1738,
2039,
270,
3256,
2513,
1005,
1647,
2185,
3837,
858,
1679,
1897,
1719,
2954,
2324,
1806,
402,
670,
167,
4129,
1498,
2158,
2104,
750,
6183,
915,
189,
1680,
1551,
455,
4356,
1501,
2455,
405,
1095,
2955,
338,
1586,
1266,
1819,
570,
641,
1324,
237,
1556,
2650,
1388,
3723,
6184,
1368,
2384,
1343,
1978,
3089,
2436,
879,
3724,
792,
1191,
758,
3012,
1411,
2135,
1322,
4357,
240,
4667,
1848,
3725,
1574,
6185,
420,
3045,
1546,
1391,
714,
4358,
1967,
941,
1864,
863,
664,
426,
560,
1731,
2680,
1785,
2864,
1949,
2363,
403,
3330,
1415,
1279,
2136,
1697,
2335,
204,
721,
2097,
3838,
90,
6186,
2085,
2505,
191,
3967,
124,
2148,
1376,
1798,
1178,
1107,
1898,
1405,
860,
4359,
1243,
1272,
2375,
2983,
1558,
2456,
1638,
113,
3621,
578,
1923,
2609,
880,
386,
4130,
784,
2186,
2266,
1422,
2956,
2172,
1722,
497,
263,
2514,
1267,
2412,
2610,
177,
2703,
3542,
774,
1927,
1344,
616,
1432,
1595,
1018,
172,
4360,
2325,
911,
4361,
438,
1468,
3622,
794,
3968,
2024,
2173,
1681,
1829,
2957,
945,
895,
3090,
575,
2212,
2476,
475,
2401,
2681,
785,
2744,
1745,
2293,
2555,
1975,
3133,
2865,
394,
4668,
3839,
635,
4131,
639,
202,
1507,
2195,
2766,
1345,
1435,
2572,
3726,
1908,
1184,
1181,
2457,
3727,
3134,
4362,
843,
2611,
437,
916,
4669,
234,
769,
1884,
3046,
3047,
3623,
833,
6187,
1639,
2250,
2402,
1355,
1185,
2010,
2047,
999,
525,
1732,
1290,
1488,
2612,
948,
1578,
3728,
2413,
2477,
1216,
2725,
2159,
334,
3840,
1328,
3624,
2921,
1525,
4132,
564,
1056,
891,
4363,
1444,
1698,
2385,
2251,
3729,
1365,
2281,
2235,
1717,
6188,
864,
3841,
2515,
444,
527,
2767,
2922,
3625,
544,
461,
6189,
566,
209,
2437,
3398,
2098,
1065,
2068,
3331,
3626,
3257,
2137,
2138,
2122,
3730,
2888,
1995,
1820,
1044,
6190,
6191,
6192,
6193,
6194,
6195,
6196,
6197,
6198,
6199,
6200,
6201,
6202,
6203,
6204,
6205,
4670,
6206,
6207,
6208,
6209,
6210,
6211,
6212,
6213,
6214,
6215,
6216,
6217,
6218,
6219,
6220,
6221,
6222,
6223,
6224,
6225,
6226,
6227,
6228,
6229,
6230,
6231,
6232,
6233,
6234,
6235,
6236,
6237,
3187,
6238,
6239,
3969,
6240,
6241,
6242,
6243,
6244,
4671,
6245,
6246,
4672,
6247,
6248,
4133,
6249,
6250,
4364,
6251,
2923,
2556,
2613,
4673,
4365,
3970,
6252,
6253,
6254,
6255,
4674,
6256,
6257,
6258,
2768,
2353,
4366,
4675,
4676,
3188,
4367,
3463,
6259,
4134,
4677,
4678,
6260,
2267,
6261,
3842,
3332,
4368,
3543,
6262,
6263,
6264,
3013,
1954,
1928,
4135,
4679,
6265,
6266,
2478,
3091,
6267,
4680,
4369,
6268,
6269,
1699,
6270,
3544,
4136,
4681,
6271,
4137,
6272,
4370,
2804,
6273,
6274,
2593,
3971,
3972,
4682,
6275,
2236,
4683,
6276,
6277,
4684,
6278,
6279,
4138,
3973,
4685,
6280,
6281,
3258,
6282,
6283,
6284,
6285,
3974,
4686,
2841,
3975,
6286,
6287,
3545,
6288,
6289,
4139,
4687,
4140,
6290,
4141,
6291,
4142,
6292,
6293,
3333,
6294,
6295,
6296,
4371,
6297,
3399,
6298,
6299,
4372,
3976,
6300,
6301,
6302,
4373,
6303,
6304,
3843,
3731,
6305,
4688,
4374,
6306,
6307,
3259,
2294,
6308,
3732,
2530,
4143,
6309,
4689,
6310,
6311,
6312,
3048,
6313,
6314,
4690,
3733,
2237,
6315,
6316,
2282,
3334,
6317,
6318,
3844,
6319,
6320,
4691,
6321,
3400,
4692,
6322,
4693,
6323,
3049,
6324,
4375,
6325,
3977,
6326,
6327,
6328,
3546,
6329,
4694,
3335,
6330,
4695,
4696,
6331,
6332,
6333,
6334,
4376,
3978,
6335,
4697,
3979,
4144,
6336,
3980,
4698,
6337,
6338,
6339,
6340,
6341,
4699,
4700,
4701,
6342,
6343,
4702,
6344,
6345,
4703,
6346,
6347,
4704,
6348,
4705,
4706,
3135,
6349,
4707,
6350,
4708,
6351,
4377,
6352,
4709,
3734,
4145,
6353,
2506,
4710,
3189,
6354,
3050,
4711,
3981,
6355,
3547,
3014,
4146,
4378,
3735,
2651,
3845,
3260,
3136,
2224,
1986,
6356,
3401,
6357,
4712,
2594,
3627,
3137,
2573,
3736,
3982,
4713,
3628,
4714,
4715,
2682,
3629,
4716,
6358,
3630,
4379,
3631,
6359,
6360,
6361,
3983,
6362,
6363,
6364,
6365,
4147,
3846,
4717,
6366,
6367,
3737,
2842,
6368,
4718,
2628,
6369,
3261,
6370,
2386,
6371,
6372,
3738,
3984,
4719,
3464,
4720,
3402,
6373,
2924,
3336,
4148,
2866,
6374,
2805,
3262,
4380,
2704,
2069,
2531,
3138,
2806,
2984,
6375,
2769,
6376,
4721,
4722,
3403,
6377,
6378,
3548,
6379,
6380,
2705,
3092,
1979,
4149,
2629,
3337,
2889,
6381,
3338,
4150,
2557,
3339,
4381,
6382,
3190,
3263,
3739,
6383,
4151,
4723,
4152,
2558,
2574,
3404,
3191,
6384,
6385,
4153,
6386,
4724,
4382,
6387,
6388,
4383,
6389,
6390,
4154,
6391,
4725,
3985,
6392,
3847,
4155,
6393,
6394,
6395,
6396,
6397,
3465,
6398,
4384,
6399,
6400,
6401,
6402,
6403,
6404,
4156,
6405,
6406,
6407,
6408,
2123,
6409,
6410,
2326,
3192,
4726,
6411,
6412,
6413,
6414,
4385,
4157,
6415,
6416,
4158,
6417,
3093,
3848,
6418,
3986,
6419,
6420,
3849,
6421,
6422,
6423,
4159,
6424,
6425,
4160,
6426,
3740,
6427,
6428,
6429,
6430,
3987,
6431,
4727,
6432,
2238,
6433,
6434,
4386,
3988,
6435,
6436,
3632,
6437,
6438,
2843,
6439,
6440,
6441,
6442,
3633,
6443,
2958,
6444,
6445,
3466,
6446,
2364,
4387,
3850,
6447,
4388,
2959,
3340,
6448,
3851,
6449,
4728,
6450,
6451,
3264,
4729,
6452,
3193,
6453,
4389,
4390,
2706,
3341,
4730,
6454,
3139,
6455,
3194,
6456,
3051,
2124,
3852,
1602,
4391,
4161,
3853,
1158,
3854,
4162,
3989,
4392,
3990,
4731,
4732,
4393,
2040,
4163,
4394,
3265,
6457,
2807,
3467,
3855,
6458,
6459,
6460,
3991,
3468,
4733,
4734,
6461,
3140,
2960,
6462,
4735,
6463,
6464,
6465,
6466,
4736,
4737,
4738,
4739,
6467,
6468,
4164,
2403,
3856,
6469,
6470,
2770,
2844,
6471,
4740,
6472,
6473,
6474,
6475,
6476,
6477,
6478,
3195,
6479,
4741,
4395,
6480,
2867,
6481,
4742,
2808,
6482,
2493,
4165,
6483,
6484,
6485,
6486,
2295,
4743,
6487,
6488,
6489,
3634,
6490,
6491,
6492,
6493,
6494,
6495,
6496,
2985,
4744,
6497,
6498,
4745,
6499,
6500,
2925,
3141,
4166,
6501,
6502,
4746,
6503,
6504,
4747,
6505,
6506,
6507,
2890,
6508,
6509,
6510,
6511,
6512,
6513,
6514,
6515,
6516,
6517,
6518,
6519,
3469,
4167,
6520,
6521,
6522,
4748,
4396,
3741,
4397,
4749,
4398,
3342,
2125,
4750,
6523,
4751,
4752,
4753,
3052,
6524,
2961,
4168,
6525,
4754,
6526,
4755,
4399,
2926,
4169,
6527,
3857,
6528,
4400,
4170,
6529,
4171,
6530,
6531,
2595,
6532,
6533,
6534,
6535,
3635,
6536,
6537,
6538,
6539,
6540,
6541,
6542,
4756,
6543,
6544,
6545,
6546,
6547,
6548,
4401,
6549,
6550,
6551,
6552,
4402,
3405,
4757,
4403,
6553,
6554,
6555,
4172,
3742,
6556,
6557,
6558,
3992,
3636,
6559,
6560,
3053,
2726,
6561,
3549,
4173,
3054,
4404,
6562,
6563,
3993,
4405,
3266,
3550,
2809,
4406,
6564,
6565,
6566,
4758,
4759,
6567,
3743,
6568,
4760,
3744,
4761,
3470,
6569,
6570,
6571,
4407,
6572,
3745,
4174,
6573,
4175,
2810,
4176,
3196,
4762,
6574,
4177,
6575,
6576,
2494,
2891,
3551,
6577,
6578,
3471,
6579,
4408,
6580,
3015,
3197,
6581,
3343,
2532,
3994,
3858,
6582,
3094,
3406,
4409,
6583,
2892,
4178,
4763,
4410,
3016,
4411,
6584,
3995,
3142,
3017,
2683,
6585,
4179,
6586,
6587,
4764,
4412,
6588,
6589,
4413,
6590,
2986,
6591,
2962,
3552,
6592,
2963,
3472,
6593,
6594,
4180,
4765,
6595,
6596,
2225,
3267,
4414,
6597,
3407,
3637,
4766,
6598,
6599,
3198,
6600,
4415,
6601,
3859,
3199,
6602,
3473,
4767,
2811,
4416,
1856,
3268,
3200,
2575,
3996,
3997,
3201,
4417,
6603,
3095,
2927,
6604,
3143,
6605,
2268,
6606,
3998,
3860,
3096,
2771,
6607,
6608,
3638,
2495,
4768,
6609,
3861,
6610,
3269,
2745,
4769,
4181,
3553,
6611,
2845,
3270,
6612,
6613,
6614,
3862,
6615,
6616,
4770,
4771,
6617,
3474,
3999,
4418,
4419,
6618,
3639,
3344,
6619,
4772,
4182,
6620,
2126,
6621,
6622,
6623,
4420,
4773,
6624,
3018,
6625,
4774,
3554,
6626,
4183,
2025,
3746,
6627,
4184,
2707,
6628,
4421,
4422,
3097,
1775,
4185,
3555,
6629,
6630,
2868,
6631,
6632,
4423,
6633,
6634,
4424,
2414,
2533,
2928,
6635,
4186,
2387,
6636,
4775,
6637,
4187,
6638,
1891,
4425,
3202,
3203,
6639,
6640,
4776,
6641,
3345,
6642,
6643,
3640,
6644,
3475,
3346,
3641,
4e3,
6645,
3144,
6646,
3098,
2812,
4188,
3642,
3204,
6647,
3863,
3476,
6648,
3864,
6649,
4426,
4001,
6650,
6651,
6652,
2576,
6653,
4189,
4777,
6654,
6655,
6656,
2846,
6657,
3477,
3205,
4002,
6658,
4003,
6659,
3347,
2252,
6660,
6661,
6662,
4778,
6663,
6664,
6665,
6666,
6667,
6668,
6669,
4779,
4780,
2048,
6670,
3478,
3099,
6671,
3556,
3747,
4004,
6672,
6673,
6674,
3145,
4005,
3748,
6675,
6676,
6677,
6678,
6679,
3408,
6680,
6681,
6682,
6683,
3206,
3207,
6684,
6685,
4781,
4427,
6686,
4782,
4783,
4784,
6687,
6688,
6689,
4190,
6690,
6691,
3479,
6692,
2746,
6693,
4428,
6694,
6695,
6696,
6697,
6698,
6699,
4785,
6700,
6701,
3208,
2727,
6702,
3146,
6703,
6704,
3409,
2196,
6705,
4429,
6706,
6707,
6708,
2534,
1996,
6709,
6710,
6711,
2747,
6712,
6713,
6714,
4786,
3643,
6715,
4430,
4431,
6716,
3557,
6717,
4432,
4433,
6718,
6719,
6720,
6721,
3749,
6722,
4006,
4787,
6723,
6724,
3644,
4788,
4434,
6725,
6726,
4789,
2772,
6727,
6728,
6729,
6730,
6731,
2708,
3865,
2813,
4435,
6732,
6733,
4790,
4791,
3480,
6734,
6735,
6736,
6737,
4436,
3348,
6738,
3410,
4007,
6739,
6740,
4008,
6741,
6742,
4792,
3411,
4191,
6743,
6744,
6745,
6746,
6747,
3866,
6748,
3750,
6749,
6750,
6751,
6752,
6753,
6754,
6755,
3867,
6756,
4009,
6757,
4793,
4794,
6758,
2814,
2987,
6759,
6760,
6761,
4437,
6762,
6763,
6764,
6765,
3645,
6766,
6767,
3481,
4192,
6768,
3751,
6769,
6770,
2174,
6771,
3868,
3752,
6772,
6773,
6774,
4193,
4795,
4438,
3558,
4796,
4439,
6775,
4797,
6776,
6777,
4798,
6778,
4799,
3559,
4800,
6779,
6780,
6781,
3482,
6782,
2893,
6783,
6784,
4194,
4801,
4010,
6785,
6786,
4440,
6787,
4011,
6788,
6789,
6790,
6791,
6792,
6793,
4802,
6794,
6795,
6796,
4012,
6797,
6798,
6799,
6800,
3349,
4803,
3483,
6801,
4804,
4195,
6802,
4013,
6803,
6804,
4196,
6805,
4014,
4015,
6806,
2847,
3271,
2848,
6807,
3484,
6808,
6809,
6810,
4441,
6811,
4442,
4197,
4443,
3272,
4805,
6812,
3412,
4016,
1579,
6813,
6814,
4017,
6815,
3869,
6816,
2964,
6817,
4806,
6818,
6819,
4018,
3646,
6820,
6821,
4807,
4019,
4020,
6822,
6823,
3560,
6824,
6825,
4021,
4444,
6826,
4198,
6827,
6828,
4445,
6829,
6830,
4199,
4808,
6831,
6832,
6833,
3870,
3019,
2458,
6834,
3753,
3413,
3350,
6835,
4809,
3871,
4810,
3561,
4446,
6836,
6837,
4447,
4811,
4812,
6838,
2459,
4448,
6839,
4449,
6840,
6841,
4022,
3872,
6842,
4813,
4814,
6843,
6844,
4815,
4200,
4201,
4202,
6845,
4023,
6846,
6847,
4450,
3562,
3873,
6848,
6849,
4816,
4817,
6850,
4451,
4818,
2139,
6851,
3563,
6852,
6853,
3351,
6854,
6855,
3352,
4024,
2709,
3414,
4203,
4452,
6856,
4204,
6857,
6858,
3874,
3875,
6859,
6860,
4819,
6861,
6862,
6863,
6864,
4453,
3647,
6865,
6866,
4820,
6867,
6868,
6869,
6870,
4454,
6871,
2869,
6872,
6873,
4821,
6874,
3754,
6875,
4822,
4205,
6876,
6877,
6878,
3648,
4206,
4455,
6879,
4823,
6880,
4824,
3876,
6881,
3055,
4207,
6882,
3415,
6883,
6884,
6885,
4208,
4209,
6886,
4210,
3353,
6887,
3354,
3564,
3209,
3485,
2652,
6888,
2728,
6889,
3210,
3755,
6890,
4025,
4456,
6891,
4825,
6892,
6893,
6894,
6895,
4211,
6896,
6897,
6898,
4826,
6899,
6900,
4212,
6901,
4827,
6902,
2773,
3565,
6903,
4828,
6904,
6905,
6906,
6907,
3649,
3650,
6908,
2849,
3566,
6909,
3567,
3100,
6910,
6911,
6912,
6913,
6914,
6915,
4026,
6916,
3355,
4829,
3056,
4457,
3756,
6917,
3651,
6918,
4213,
3652,
2870,
6919,
4458,
6920,
2438,
6921,
6922,
3757,
2774,
4830,
6923,
3356,
4831,
4832,
6924,
4833,
4459,
3653,
2507,
6925,
4834,
2535,
6926,
6927,
3273,
4027,
3147,
6928,
3568,
6929,
6930,
6931,
4460,
6932,
3877,
4461,
2729,
3654,
6933,
6934,
6935,
6936,
2175,
4835,
2630,
4214,
4028,
4462,
4836,
4215,
6937,
3148,
4216,
4463,
4837,
4838,
4217,
6938,
6939,
2850,
4839,
6940,
4464,
6941,
6942,
6943,
4840,
6944,
4218,
3274,
4465,
6945,
6946,
2710,
6947,
4841,
4466,
6948,
6949,
2894,
6950,
6951,
4842,
6952,
4219,
3057,
2871,
6953,
6954,
6955,
6956,
4467,
6957,
2711,
6958,
6959,
6960,
3275,
3101,
4843,
6961,
3357,
3569,
6962,
4844,
6963,
6964,
4468,
4845,
3570,
6965,
3102,
4846,
3758,
6966,
4847,
3878,
4848,
4849,
4029,
6967,
2929,
3879,
4850,
4851,
6968,
6969,
1733,
6970,
4220,
6971,
6972,
6973,
6974,
6975,
6976,
4852,
6977,
6978,
6979,
6980,
6981,
6982,
3759,
6983,
6984,
6985,
3486,
3487,
6986,
3488,
3416,
6987,
6988,
6989,
6990,
6991,
6992,
6993,
6994,
6995,
6996,
6997,
4853,
6998,
6999,
4030,
7e3,
7001,
3211,
7002,
7003,
4221,
7004,
7005,
3571,
4031,
7006,
3572,
7007,
2614,
4854,
2577,
7008,
7009,
2965,
3655,
3656,
4855,
2775,
3489,
3880,
4222,
4856,
3881,
4032,
3882,
3657,
2730,
3490,
4857,
7010,
3149,
7011,
4469,
4858,
2496,
3491,
4859,
2283,
7012,
7013,
7014,
2365,
4860,
4470,
7015,
7016,
3760,
7017,
7018,
4223,
1917,
7019,
7020,
7021,
4471,
7022,
2776,
4472,
7023,
7024,
7025,
7026,
4033,
7027,
3573,
4224,
4861,
4034,
4862,
7028,
7029,
1929,
3883,
4035,
7030,
4473,
3058,
7031,
2536,
3761,
3884,
7032,
4036,
7033,
2966,
2895,
1968,
4474,
3276,
4225,
3417,
3492,
4226,
2105,
7034,
7035,
1754,
2596,
3762,
4227,
4863,
4475,
3763,
4864,
3764,
2615,
2777,
3103,
3765,
3658,
3418,
4865,
2296,
3766,
2815,
7036,
7037,
7038,
3574,
2872,
3277,
4476,
7039,
4037,
4477,
7040,
7041,
4038,
7042,
7043,
7044,
7045,
7046,
7047,
2537,
7048,
7049,
7050,
7051,
7052,
7053,
7054,
4478,
7055,
7056,
3767,
3659,
4228,
3575,
7057,
7058,
4229,
7059,
7060,
7061,
3660,
7062,
3212,
7063,
3885,
4039,
2460,
7064,
7065,
7066,
7067,
7068,
7069,
7070,
7071,
7072,
7073,
7074,
4866,
3768,
4867,
7075,
7076,
7077,
7078,
4868,
3358,
3278,
2653,
7079,
7080,
4479,
3886,
7081,
7082,
4869,
7083,
7084,
7085,
7086,
7087,
7088,
2538,
7089,
7090,
7091,
4040,
3150,
3769,
4870,
4041,
2896,
3359,
4230,
2930,
7092,
3279,
7093,
2967,
4480,
3213,
4481,
3661,
7094,
7095,
7096,
7097,
7098,
7099,
7100,
7101,
7102,
2461,
3770,
7103,
7104,
4231,
3151,
7105,
7106,
7107,
4042,
3662,
7108,
7109,
4871,
3663,
4872,
4043,
3059,
7110,
7111,
7112,
3493,
2988,
7113,
4873,
7114,
7115,
7116,
3771,
4874,
7117,
7118,
4232,
4875,
7119,
3576,
2336,
4876,
7120,
4233,
3419,
4044,
4877,
4878,
4482,
4483,
4879,
4484,
4234,
7121,
3772,
4880,
1045,
3280,
3664,
4881,
4882,
7122,
7123,
7124,
7125,
4883,
7126,
2778,
7127,
4485,
4486,
7128,
4884,
3214,
3887,
7129,
7130,
3215,
7131,
4885,
4045,
7132,
7133,
4046,
7134,
7135,
7136,
7137,
7138,
7139,
7140,
7141,
7142,
7143,
4235,
7144,
4886,
7145,
7146,
7147,
4887,
7148,
7149,
7150,
4487,
4047,
4488,
7151,
7152,
4888,
4048,
2989,
3888,
7153,
3665,
7154,
4049,
7155,
7156,
7157,
7158,
7159,
7160,
2931,
4889,
4890,
4489,
7161,
2631,
3889,
4236,
2779,
7162,
7163,
4891,
7164,
3060,
7165,
1672,
4892,
7166,
4893,
4237,
3281,
4894,
7167,
7168,
3666,
7169,
3494,
7170,
7171,
4050,
7172,
7173,
3104,
3360,
3420,
4490,
4051,
2684,
4052,
7174,
4053,
7175,
7176,
7177,
2253,
4054,
7178,
7179,
4895,
7180,
3152,
3890,
3153,
4491,
3216,
7181,
7182,
7183,
2968,
4238,
4492,
4055,
7184,
2990,
7185,
2479,
7186,
7187,
4493,
7188,
7189,
7190,
7191,
7192,
4896,
7193,
4897,
2969,
4494,
4898,
7194,
3495,
7195,
7196,
4899,
4495,
7197,
3105,
2731,
7198,
4900,
7199,
7200,
7201,
4056,
7202,
3361,
7203,
7204,
4496,
4901,
4902,
7205,
4497,
7206,
7207,
2315,
4903,
7208,
4904,
7209,
4905,
2851,
7210,
7211,
3577,
7212,
3578,
4906,
7213,
4057,
3667,
4907,
7214,
4058,
2354,
3891,
2376,
3217,
3773,
7215,
7216,
7217,
7218,
7219,
4498,
7220,
4908,
3282,
2685,
7221,
3496,
4909,
2632,
3154,
4910,
7222,
2337,
7223,
4911,
7224,
7225,
7226,
4912,
4913,
3283,
4239,
4499,
7227,
2816,
7228,
7229,
7230,
7231,
7232,
7233,
7234,
4914,
4500,
4501,
7235,
7236,
7237,
2686,
7238,
4915,
7239,
2897,
4502,
7240,
4503,
7241,
2516,
7242,
4504,
3362,
3218,
7243,
7244,
7245,
4916,
7246,
7247,
4505,
3363,
7248,
7249,
7250,
7251,
3774,
4506,
7252,
7253,
4917,
7254,
7255,
3284,
2991,
4918,
4919,
3219,
3892,
4920,
3106,
3497,
4921,
7256,
7257,
7258,
4922,
7259,
4923,
3364,
4507,
4508,
4059,
7260,
4240,
3498,
7261,
7262,
4924,
7263,
2992,
3893,
4060,
3220,
7264,
7265,
7266,
7267,
7268,
7269,
4509,
3775,
7270,
2817,
7271,
4061,
4925,
4510,
3776,
7272,
4241,
4511,
3285,
7273,
7274,
3499,
7275,
7276,
7277,
4062,
4512,
4926,
7278,
3107,
3894,
7279,
7280,
4927,
7281,
4513,
7282,
7283,
3668,
7284,
7285,
4242,
4514,
4243,
7286,
2058,
4515,
4928,
4929,
4516,
7287,
3286,
4244,
7288,
4517,
7289,
7290,
7291,
3669,
7292,
7293,
4930,
4931,
4932,
2355,
4933,
7294,
2633,
4518,
7295,
4245,
7296,
7297,
4519,
7298,
7299,
4520,
4521,
4934,
7300,
4246,
4522,
7301,
7302,
7303,
3579,
7304,
4247,
4935,
7305,
4936,
7306,
7307,
7308,
7309,
3777,
7310,
4523,
7311,
7312,
7313,
4248,
3580,
7314,
4524,
3778,
4249,
7315,
3581,
7316,
3287,
7317,
3221,
7318,
4937,
7319,
7320,
7321,
7322,
7323,
7324,
4938,
4939,
7325,
4525,
7326,
7327,
7328,
4063,
7329,
7330,
4940,
7331,
7332,
4941,
7333,
4526,
7334,
3500,
2780,
1741,
4942,
2026,
1742,
7335,
7336,
3582,
4527,
2388,
7337,
7338,
7339,
4528,
7340,
4250,
4943,
7341,
7342,
7343,
4944,
7344,
7345,
7346,
3020,
7347,
4945,
7348,
7349,
7350,
7351,
3895,
7352,
3896,
4064,
3897,
7353,
7354,
7355,
4251,
7356,
7357,
3898,
7358,
3779,
7359,
3780,
3288,
7360,
7361,
4529,
7362,
4946,
4530,
2027,
7363,
3899,
4531,
4947,
3222,
3583,
7364,
4948,
7365,
7366,
7367,
7368,
4949,
3501,
4950,
3781,
4951,
4532,
7369,
2517,
4952,
4252,
4953,
3155,
7370,
4954,
4955,
4253,
2518,
4533,
7371,
7372,
2712,
4254,
7373,
7374,
7375,
3670,
4956,
3671,
7376,
2389,
3502,
4065,
7377,
2338,
7378,
7379,
7380,
7381,
3061,
7382,
4957,
7383,
7384,
7385,
7386,
4958,
4534,
7387,
7388,
2993,
7389,
3062,
7390,
4959,
7391,
7392,
7393,
4960,
3108,
4961,
7394,
4535,
7395,
4962,
3421,
4536,
7396,
4963,
7397,
4964,
1857,
7398,
4965,
7399,
7400,
2176,
3584,
4966,
7401,
7402,
3422,
4537,
3900,
3585,
7403,
3782,
7404,
2852,
7405,
7406,
7407,
4538,
3783,
2654,
3423,
4967,
4539,
7408,
3784,
3586,
2853,
4540,
4541,
7409,
3901,
7410,
3902,
7411,
7412,
3785,
3109,
2327,
3903,
7413,
7414,
2970,
4066,
2932,
7415,
7416,
7417,
3904,
3672,
3424,
7418,
4542,
4543,
4544,
7419,
4968,
7420,
7421,
4255,
7422,
7423,
7424,
7425,
7426,
4067,
7427,
3673,
3365,
4545,
7428,
3110,
2559,
3674,
7429,
7430,
3156,
7431,
7432,
3503,
7433,
3425,
4546,
7434,
3063,
2873,
7435,
3223,
4969,
4547,
4548,
2898,
4256,
4068,
7436,
4069,
3587,
3786,
2933,
3787,
4257,
4970,
4971,
3788,
7437,
4972,
3064,
7438,
4549,
7439,
7440,
7441,
7442,
7443,
4973,
3905,
7444,
2874,
7445,
7446,
7447,
7448,
3021,
7449,
4550,
3906,
3588,
4974,
7450,
7451,
3789,
3675,
7452,
2578,
7453,
4070,
7454,
7455,
7456,
4258,
3676,
7457,
4975,
7458,
4976,
4259,
3790,
3504,
2634,
4977,
3677,
4551,
4260,
7459,
7460,
7461,
7462,
3907,
4261,
4978,
7463,
7464,
7465,
7466,
4979,
4980,
7467,
7468,
2213,
4262,
7469,
7470,
7471,
3678,
4981,
7472,
2439,
7473,
4263,
3224,
3289,
7474,
3908,
2415,
4982,
7475,
4264,
7476,
4983,
2655,
7477,
7478,
2732,
4552,
2854,
2875,
7479,
7480,
4265,
7481,
4553,
4984,
7482,
7483,
4266,
7484,
3679,
3366,
3680,
2818,
2781,
2782,
3367,
3589,
4554,
3065,
7485,
4071,
2899,
7486,
7487,
3157,
2462,
4072,
4555,
4073,
4985,
4986,
3111,
4267,
2687,
3368,
4556,
4074,
3791,
4268,
7488,
3909,
2783,
7489,
2656,
1962,
3158,
4557,
4987,
1963,
3159,
3160,
7490,
3112,
4988,
4989,
3022,
4990,
4991,
3792,
2855,
7491,
7492,
2971,
4558,
7493,
7494,
4992,
7495,
7496,
7497,
7498,
4993,
7499,
3426,
4559,
4994,
7500,
3681,
4560,
4269,
4270,
3910,
7501,
4075,
4995,
4271,
7502,
7503,
4076,
7504,
4996,
7505,
3225,
4997,
4272,
4077,
2819,
3023,
7506,
7507,
2733,
4561,
7508,
4562,
7509,
3369,
3793,
7510,
3590,
2508,
7511,
7512,
4273,
3113,
2994,
2616,
7513,
7514,
7515,
7516,
7517,
7518,
2820,
3911,
4078,
2748,
7519,
7520,
4563,
4998,
7521,
7522,
7523,
7524,
4999,
4274,
7525,
4564,
3682,
2239,
4079,
4565,
7526,
7527,
7528,
7529,
5e3,
7530,
7531,
5001,
4275,
3794,
7532,
7533,
7534,
3066,
5002,
4566,
3161,
7535,
7536,
4080,
7537,
3162,
7538,
7539,
4567,
7540,
7541,
7542,
7543,
7544,
7545,
5003,
7546,
4568,
7547,
7548,
7549,
7550,
7551,
7552,
7553,
7554,
7555,
7556,
5004,
7557,
7558,
7559,
5005,
7560,
3795,
7561,
4569,
7562,
7563,
7564,
2821,
3796,
4276,
4277,
4081,
7565,
2876,
7566,
5006,
7567,
7568,
2900,
7569,
3797,
3912,
7570,
7571,
7572,
4278,
7573,
7574,
7575,
5007,
7576,
7577,
5008,
7578,
7579,
4279,
2934,
7580,
7581,
5009,
7582,
4570,
7583,
4280,
7584,
7585,
7586,
4571,
4572,
3913,
7587,
4573,
3505,
7588,
5010,
7589,
7590,
7591,
7592,
3798,
4574,
7593,
7594,
5011,
7595,
4281,
7596,
7597,
7598,
4282,
5012,
7599,
7600,
5013,
3163,
7601,
5014,
7602,
3914,
7603,
7604,
2734,
4575,
4576,
4577,
7605,
7606,
7607,
7608,
7609,
3506,
5015,
4578,
7610,
4082,
7611,
2822,
2901,
2579,
3683,
3024,
4579,
3507,
7612,
4580,
7613,
3226,
3799,
5016,
7614,
7615,
7616,
7617,
7618,
7619,
7620,
2995,
3290,
7621,
4083,
7622,
5017,
7623,
7624,
7625,
7626,
7627,
4581,
3915,
7628,
3291,
7629,
5018,
7630,
7631,
7632,
7633,
4084,
7634,
7635,
3427,
3800,
7636,
7637,
4582,
7638,
5019,
4583,
5020,
7639,
3916,
7640,
3801,
5021,
4584,
4283,
7641,
7642,
3428,
3591,
2269,
7643,
2617,
7644,
4585,
3592,
7645,
4586,
2902,
7646,
7647,
3227,
5022,
7648,
4587,
7649,
4284,
7650,
7651,
7652,
4588,
2284,
7653,
5023,
7654,
7655,
7656,
4589,
5024,
3802,
7657,
7658,
5025,
3508,
4590,
7659,
7660,
7661,
1969,
5026,
7662,
7663,
3684,
1821,
2688,
7664,
2028,
2509,
4285,
7665,
2823,
1841,
7666,
2689,
3114,
7667,
3917,
4085,
2160,
5027,
5028,
2972,
7668,
5029,
7669,
7670,
7671,
3593,
4086,
7672,
4591,
4087,
5030,
3803,
7673,
7674,
7675,
7676,
7677,
7678,
7679,
4286,
2366,
4592,
4593,
3067,
2328,
7680,
7681,
4594,
3594,
3918,
2029,
4287,
7682,
5031,
3919,
3370,
4288,
4595,
2856,
7683,
3509,
7684,
7685,
5032,
5033,
7686,
7687,
3804,
2784,
7688,
7689,
7690,
7691,
3371,
7692,
7693,
2877,
5034,
7694,
7695,
3920,
4289,
4088,
7696,
7697,
7698,
5035,
7699,
5036,
4290,
5037,
5038,
5039,
7700,
7701,
7702,
5040,
5041,
3228,
7703,
1760,
7704,
5042,
3229,
4596,
2106,
4089,
7705,
4597,
2824,
5043,
2107,
3372,
7706,
4291,
4090,
5044,
7707,
4091,
7708,
5045,
3025,
3805,
4598,
4292,
4293,
4294,
3373,
7709,
4599,
7710,
5046,
7711,
7712,
5047,
5048,
3806,
7713,
7714,
7715,
5049,
7716,
7717,
7718,
7719,
4600,
5050,
7720,
7721,
7722,
5051,
7723,
4295,
3429,
7724,
7725,
7726,
7727,
3921,
7728,
3292,
5052,
4092,
7729,
7730,
7731,
7732,
7733,
7734,
7735,
5053,
5054,
7736,
7737,
7738,
7739,
3922,
3685,
7740,
7741,
7742,
7743,
2635,
5055,
7744,
5056,
4601,
7745,
7746,
2560,
7747,
7748,
7749,
7750,
3923,
7751,
7752,
7753,
7754,
7755,
4296,
2903,
7756,
7757,
7758,
7759,
7760,
3924,
7761,
5057,
4297,
7762,
7763,
5058,
4298,
7764,
4093,
7765,
7766,
5059,
3925,
7767,
7768,
7769,
7770,
7771,
7772,
7773,
7774,
7775,
7776,
3595,
7777,
4299,
5060,
4094,
7778,
3293,
5061,
7779,
7780,
4300,
7781,
7782,
4602,
7783,
3596,
7784,
7785,
3430,
2367,
7786,
3164,
5062,
5063,
4301,
7787,
7788,
4095,
5064,
5065,
7789,
3374,
3115,
7790,
7791,
7792,
7793,
7794,
7795,
7796,
3597,
4603,
7797,
7798,
3686,
3116,
3807,
5066,
7799,
7800,
5067,
7801,
7802,
4604,
4302,
5068,
4303,
4096,
7803,
7804,
3294,
7805,
7806,
5069,
4605,
2690,
7807,
3026,
7808,
7809,
7810,
7811,
7812,
7813,
7814,
7815,
7816,
7817,
7818,
7819,
7820,
7821,
7822,
7823,
7824,
7825,
7826,
7827,
7828,
7829,
7830,
7831,
7832,
7833,
7834,
7835,
7836,
7837,
7838,
7839,
7840,
7841,
7842,
7843,
7844,
7845,
7846,
7847,
7848,
7849,
7850,
7851,
7852,
7853,
7854,
7855,
7856,
7857,
7858,
7859,
7860,
7861,
7862,
7863,
7864,
7865,
7866,
7867,
7868,
7869,
7870,
7871,
7872,
7873,
7874,
7875,
7876,
7877,
7878,
7879,
7880,
7881,
7882,
7883,
7884,
7885,
7886,
7887,
7888,
7889,
7890,
7891,
7892,
7893,
7894,
7895,
7896,
7897,
7898,
7899,
7900,
7901,
7902,
7903,
7904,
7905,
7906,
7907,
7908,
7909,
7910,
7911,
7912,
7913,
7914,
7915,
7916,
7917,
7918,
7919,
7920,
7921,
7922,
7923,
7924,
3926,
7925,
7926,
7927,
7928,
7929,
7930,
7931,
7932,
7933,
7934,
7935,
7936,
7937,
7938,
7939,
7940,
7941,
7942,
7943,
7944,
7945,
7946,
7947,
7948,
7949,
7950,
7951,
7952,
7953,
7954,
7955,
7956,
7957,
7958,
7959,
7960,
7961,
7962,
7963,
7964,
7965,
7966,
7967,
7968,
7969,
7970,
7971,
7972,
7973,
7974,
7975,
7976,
7977,
7978,
7979,
7980,
7981,
7982,
7983,
7984,
7985,
7986,
7987,
7988,
7989,
7990,
7991,
7992,
7993,
7994,
7995,
7996,
7997,
7998,
7999,
8e3,
8001,
8002,
8003,
8004,
8005,
8006,
8007,
8008,
8009,
8010,
8011,
8012,
8013,
8014,
8015,
8016,
8017,
8018,
8019,
8020,
8021,
8022,
8023,
8024,
8025,
8026,
8027,
8028,
8029,
8030,
8031,
8032,
8033,
8034,
8035,
8036,
8037,
8038,
8039,
8040,
8041,
8042,
8043,
8044,
8045,
8046,
8047,
8048,
8049,
8050,
8051,
8052,
8053,
8054,
8055,
8056,
8057,
8058,
8059,
8060,
8061,
8062,
8063,
8064,
8065,
8066,
8067,
8068,
8069,
8070,
8071,
8072,
8073,
8074,
8075,
8076,
8077,
8078,
8079,
8080,
8081,
8082,
8083,
8084,
8085,
8086,
8087,
8088,
8089,
8090,
8091,
8092,
8093,
8094,
8095,
8096,
8097,
8098,
8099,
8100,
8101,
8102,
8103,
8104,
8105,
8106,
8107,
8108,
8109,
8110,
8111,
8112,
8113,
8114,
8115,
8116,
8117,
8118,
8119,
8120,
8121,
8122,
8123,
8124,
8125,
8126,
8127,
8128,
8129,
8130,
8131,
8132,
8133,
8134,
8135,
8136,
8137,
8138,
8139,
8140,
8141,
8142,
8143,
8144,
8145,
8146,
8147,
8148,
8149,
8150,
8151,
8152,
8153,
8154,
8155,
8156,
8157,
8158,
8159,
8160,
8161,
8162,
8163,
8164,
8165,
8166,
8167,
8168,
8169,
8170,
8171,
8172,
8173,
8174,
8175,
8176,
8177,
8178,
8179,
8180,
8181,
8182,
8183,
8184,
8185,
8186,
8187,
8188,
8189,
8190,
8191,
8192,
8193,
8194,
8195,
8196,
8197,
8198,
8199,
8200,
8201,
8202,
8203,
8204,
8205,
8206,
8207,
8208,
8209,
8210,
8211,
8212,
8213,
8214,
8215,
8216,
8217,
8218,
8219,
8220,
8221,
8222,
8223,
8224,
8225,
8226,
8227,
8228,
8229,
8230,
8231,
8232,
8233,
8234,
8235,
8236,
8237,
8238,
8239,
8240,
8241,
8242,
8243,
8244,
8245,
8246,
8247,
8248,
8249,
8250,
8251,
8252,
8253,
8254,
8255,
8256,
8257,
8258,
8259,
8260,
8261,
8262,
8263,
8264,
8265,
8266,
8267,
8268,
8269,
8270,
8271
];
}
});
// node_modules/jschardet/src/euctwfreq.js
var require_euctwfreq = __commonJS({
"node_modules/jschardet/src/euctwfreq.js"(exports) {
exports.EUCTW_TYPICAL_DISTRIBUTION_RATIO = 0.75;
exports.EUCTW_TABLE_SIZE = 8102;
exports.EUCTWCharToFreqOrder = [
1,
1800,
1506,
255,
1431,
198,
9,
82,
6,
7310,
177,
202,
3615,
1256,
2808,
110,
3735,
33,
3241,
261,
76,
44,
2113,
16,
2931,
2184,
1176,
659,
3868,
26,
3404,
2643,
1198,
3869,
3313,
4060,
410,
2211,
302,
590,
361,
1963,
8,
204,
58,
4296,
7311,
1931,
63,
7312,
7313,
317,
1614,
75,
222,
159,
4061,
2412,
1480,
7314,
3500,
3068,
224,
2809,
3616,
3,
10,
3870,
1471,
29,
2774,
1135,
2852,
1939,
873,
130,
3242,
1123,
312,
7315,
4297,
2051,
507,
252,
682,
7316,
142,
1914,
124,
206,
2932,
34,
3501,
3173,
64,
604,
7317,
2494,
1976,
1977,
155,
1990,
645,
641,
1606,
7318,
3405,
337,
72,
406,
7319,
80,
630,
238,
3174,
1509,
263,
939,
1092,
2644,
756,
1440,
1094,
3406,
449,
69,
2969,
591,
179,
2095,
471,
115,
2034,
1843,
60,
50,
2970,
134,
806,
1868,
734,
2035,
3407,
180,
995,
1607,
156,
537,
2893,
688,
7320,
319,
1305,
779,
2144,
514,
2374,
298,
4298,
359,
2495,
90,
2707,
1338,
663,
11,
906,
1099,
2545,
20,
2436,
182,
532,
1716,
7321,
732,
1376,
4062,
1311,
1420,
3175,
25,
2312,
1056,
113,
399,
382,
1949,
242,
3408,
2467,
529,
3243,
475,
1447,
3617,
7322,
117,
21,
656,
810,
1297,
2295,
2329,
3502,
7323,
126,
4063,
706,
456,
150,
613,
4299,
71,
1118,
2036,
4064,
145,
3069,
85,
835,
486,
2114,
1246,
1426,
428,
727,
1285,
1015,
800,
106,
623,
303,
1281,
7324,
2127,
2354,
347,
3736,
221,
3503,
3110,
7325,
1955,
1153,
4065,
83,
296,
1199,
3070,
192,
624,
93,
7326,
822,
1897,
2810,
3111,
795,
2064,
991,
1554,
1542,
1592,
27,
43,
2853,
859,
139,
1456,
860,
4300,
437,
712,
3871,
164,
2392,
3112,
695,
211,
3017,
2096,
195,
3872,
1608,
3504,
3505,
3618,
3873,
234,
811,
2971,
2097,
3874,
2229,
1441,
3506,
1615,
2375,
668,
2076,
1638,
305,
228,
1664,
4301,
467,
415,
7327,
262,
2098,
1593,
239,
108,
300,
200,
1033,
512,
1247,
2077,
7328,
7329,
2173,
3176,
3619,
2673,
593,
845,
1062,
3244,
88,
1723,
2037,
3875,
1950,
212,
266,
152,
149,
468,
1898,
4066,
4302,
77,
187,
7330,
3018,
37,
5,
2972,
7331,
3876,
7332,
7333,
39,
2517,
4303,
2894,
3177,
2078,
55,
148,
74,
4304,
545,
483,
1474,
1029,
1665,
217,
1869,
1531,
3113,
1104,
2645,
4067,
24,
172,
3507,
900,
3877,
3508,
3509,
4305,
32,
1408,
2811,
1312,
329,
487,
2355,
2247,
2708,
784,
2674,
4,
3019,
3314,
1427,
1788,
188,
109,
499,
7334,
3620,
1717,
1789,
888,
1217,
3020,
4306,
7335,
3510,
7336,
3315,
1520,
3621,
3878,
196,
1034,
775,
7337,
7338,
929,
1815,
249,
439,
38,
7339,
1063,
7340,
794,
3879,
1435,
2296,
46,
178,
3245,
2065,
7341,
2376,
7342,
214,
1709,
4307,
804,
35,
707,
324,
3622,
1601,
2546,
140,
459,
4068,
7343,
7344,
1365,
839,
272,
978,
2257,
2572,
3409,
2128,
1363,
3623,
1423,
697,
100,
3071,
48,
70,
1231,
495,
3114,
2193,
7345,
1294,
7346,
2079,
462,
586,
1042,
3246,
853,
256,
988,
185,
2377,
3410,
1698,
434,
1084,
7347,
3411,
314,
2615,
2775,
4308,
2330,
2331,
569,
2280,
637,
1816,
2518,
757,
1162,
1878,
1616,
3412,
287,
1577,
2115,
768,
4309,
1671,
2854,
3511,
2519,
1321,
3737,
909,
2413,
7348,
4069,
933,
3738,
7349,
2052,
2356,
1222,
4310,
765,
2414,
1322,
786,
4311,
7350,
1919,
1462,
1677,
2895,
1699,
7351,
4312,
1424,
2437,
3115,
3624,
2590,
3316,
1774,
1940,
3413,
3880,
4070,
309,
1369,
1130,
2812,
364,
2230,
1653,
1299,
3881,
3512,
3882,
3883,
2646,
525,
1085,
3021,
902,
2e3,
1475,
964,
4313,
421,
1844,
1415,
1057,
2281,
940,
1364,
3116,
376,
4314,
4315,
1381,
7,
2520,
983,
2378,
336,
1710,
2675,
1845,
321,
3414,
559,
1131,
3022,
2742,
1808,
1132,
1313,
265,
1481,
1857,
7352,
352,
1203,
2813,
3247,
167,
1089,
420,
2814,
776,
792,
1724,
3513,
4071,
2438,
3248,
7353,
4072,
7354,
446,
229,
333,
2743,
901,
3739,
1200,
1557,
4316,
2647,
1920,
395,
2744,
2676,
3740,
4073,
1835,
125,
916,
3178,
2616,
4317,
7355,
7356,
3741,
7357,
7358,
7359,
4318,
3117,
3625,
1133,
2547,
1757,
3415,
1510,
2313,
1409,
3514,
7360,
2145,
438,
2591,
2896,
2379,
3317,
1068,
958,
3023,
461,
311,
2855,
2677,
4074,
1915,
3179,
4075,
1978,
383,
750,
2745,
2617,
4076,
274,
539,
385,
1278,
1442,
7361,
1154,
1964,
384,
561,
210,
98,
1295,
2548,
3515,
7362,
1711,
2415,
1482,
3416,
3884,
2897,
1257,
129,
7363,
3742,
642,
523,
2776,
2777,
2648,
7364,
141,
2231,
1333,
68,
176,
441,
876,
907,
4077,
603,
2592,
710,
171,
3417,
404,
549,
18,
3118,
2393,
1410,
3626,
1666,
7365,
3516,
4319,
2898,
4320,
7366,
2973,
368,
7367,
146,
366,
99,
871,
3627,
1543,
748,
807,
1586,
1185,
22,
2258,
379,
3743,
3180,
7368,
3181,
505,
1941,
2618,
1991,
1382,
2314,
7369,
380,
2357,
218,
702,
1817,
1248,
3418,
3024,
3517,
3318,
3249,
7370,
2974,
3628,
930,
3250,
3744,
7371,
59,
7372,
585,
601,
4078,
497,
3419,
1112,
1314,
4321,
1801,
7373,
1223,
1472,
2174,
7374,
749,
1836,
690,
1899,
3745,
1772,
3885,
1476,
429,
1043,
1790,
2232,
2116,
917,
4079,
447,
1086,
1629,
7375,
556,
7376,
7377,
2020,
1654,
844,
1090,
105,
550,
966,
1758,
2815,
1008,
1782,
686,
1095,
7378,
2282,
793,
1602,
7379,
3518,
2593,
4322,
4080,
2933,
2297,
4323,
3746,
980,
2496,
544,
353,
527,
4324,
908,
2678,
2899,
7380,
381,
2619,
1942,
1348,
7381,
1341,
1252,
560,
3072,
7382,
3420,
2856,
7383,
2053,
973,
886,
2080,
143,
4325,
7384,
7385,
157,
3886,
496,
4081,
57,
840,
540,
2038,
4326,
4327,
3421,
2117,
1445,
970,
2259,
1748,
1965,
2081,
4082,
3119,
1234,
1775,
3251,
2816,
3629,
773,
1206,
2129,
1066,
2039,
1326,
3887,
1738,
1725,
4083,
279,
3120,
51,
1544,
2594,
423,
1578,
2130,
2066,
173,
4328,
1879,
7386,
7387,
1583,
264,
610,
3630,
4329,
2439,
280,
154,
7388,
7389,
7390,
1739,
338,
1282,
3073,
693,
2857,
1411,
1074,
3747,
2440,
7391,
4330,
7392,
7393,
1240,
952,
2394,
7394,
2900,
1538,
2679,
685,
1483,
4084,
2468,
1436,
953,
4085,
2054,
4331,
671,
2395,
79,
4086,
2441,
3252,
608,
567,
2680,
3422,
4087,
4088,
1691,
393,
1261,
1791,
2396,
7395,
4332,
7396,
7397,
7398,
7399,
1383,
1672,
3748,
3182,
1464,
522,
1119,
661,
1150,
216,
675,
4333,
3888,
1432,
3519,
609,
4334,
2681,
2397,
7400,
7401,
7402,
4089,
3025,
0,
7403,
2469,
315,
231,
2442,
301,
3319,
4335,
2380,
7404,
233,
4090,
3631,
1818,
4336,
4337,
7405,
96,
1776,
1315,
2082,
7406,
257,
7407,
1809,
3632,
2709,
1139,
1819,
4091,
2021,
1124,
2163,
2778,
1777,
2649,
7408,
3074,
363,
1655,
3183,
7409,
2975,
7410,
7411,
7412,
3889,
1567,
3890,
718,
103,
3184,
849,
1443,
341,
3320,
2934,
1484,
7413,
1712,
127,
67,
339,
4092,
2398,
679,
1412,
821,
7414,
7415,
834,
738,
351,
2976,
2146,
846,
235,
1497,
1880,
418,
1992,
3749,
2710,
186,
1100,
2147,
2746,
3520,
1545,
1355,
2935,
2858,
1377,
583,
3891,
4093,
2573,
2977,
7416,
1298,
3633,
1078,
2549,
3634,
2358,
78,
3750,
3751,
267,
1289,
2099,
2001,
1594,
4094,
348,
369,
1274,
2194,
2175,
1837,
4338,
1820,
2817,
3635,
2747,
2283,
2002,
4339,
2936,
2748,
144,
3321,
882,
4340,
3892,
2749,
3423,
4341,
2901,
7417,
4095,
1726,
320,
7418,
3893,
3026,
788,
2978,
7419,
2818,
1773,
1327,
2859,
3894,
2819,
7420,
1306,
4342,
2003,
1700,
3752,
3521,
2359,
2650,
787,
2022,
506,
824,
3636,
534,
323,
4343,
1044,
3322,
2023,
1900,
946,
3424,
7421,
1778,
1500,
1678,
7422,
1881,
4344,
165,
243,
4345,
3637,
2521,
123,
683,
4096,
764,
4346,
36,
3895,
1792,
589,
2902,
816,
626,
1667,
3027,
2233,
1639,
1555,
1622,
3753,
3896,
7423,
3897,
2860,
1370,
1228,
1932,
891,
2083,
2903,
304,
4097,
7424,
292,
2979,
2711,
3522,
691,
2100,
4098,
1115,
4347,
118,
662,
7425,
611,
1156,
854,
2381,
1316,
2861,
2,
386,
515,
2904,
7426,
7427,
3253,
868,
2234,
1486,
855,
2651,
785,
2212,
3028,
7428,
1040,
3185,
3523,
7429,
3121,
448,
7430,
1525,
7431,
2164,
4348,
7432,
3754,
7433,
4099,
2820,
3524,
3122,
503,
818,
3898,
3123,
1568,
814,
676,
1444,
306,
1749,
7434,
3755,
1416,
1030,
197,
1428,
805,
2821,
1501,
4349,
7435,
7436,
7437,
1993,
7438,
4350,
7439,
7440,
2195,
13,
2779,
3638,
2980,
3124,
1229,
1916,
7441,
3756,
2131,
7442,
4100,
4351,
2399,
3525,
7443,
2213,
1511,
1727,
1120,
7444,
7445,
646,
3757,
2443,
307,
7446,
7447,
1595,
3186,
7448,
7449,
7450,
3639,
1113,
1356,
3899,
1465,
2522,
2523,
7451,
519,
7452,
128,
2132,
92,
2284,
1979,
7453,
3900,
1512,
342,
3125,
2196,
7454,
2780,
2214,
1980,
3323,
7455,
290,
1656,
1317,
789,
827,
2360,
7456,
3758,
4352,
562,
581,
3901,
7457,
401,
4353,
2248,
94,
4354,
1399,
2781,
7458,
1463,
2024,
4355,
3187,
1943,
7459,
828,
1105,
4101,
1262,
1394,
7460,
4102,
605,
4356,
7461,
1783,
2862,
7462,
2822,
819,
2101,
578,
2197,
2937,
7463,
1502,
436,
3254,
4103,
3255,
2823,
3902,
2905,
3425,
3426,
7464,
2712,
2315,
7465,
7466,
2332,
2067,
23,
4357,
193,
826,
3759,
2102,
699,
1630,
4104,
3075,
390,
1793,
1064,
3526,
7467,
1579,
3076,
3077,
1400,
7468,
4105,
1838,
1640,
2863,
7469,
4358,
4359,
137,
4106,
598,
3078,
1966,
780,
104,
974,
2938,
7470,
278,
899,
253,
402,
572,
504,
493,
1339,
7471,
3903,
1275,
4360,
2574,
2550,
7472,
3640,
3029,
3079,
2249,
565,
1334,
2713,
863,
41,
7473,
7474,
4361,
7475,
1657,
2333,
19,
463,
2750,
4107,
606,
7476,
2981,
3256,
1087,
2084,
1323,
2652,
2982,
7477,
1631,
1623,
1750,
4108,
2682,
7478,
2864,
791,
2714,
2653,
2334,
232,
2416,
7479,
2983,
1498,
7480,
2654,
2620,
755,
1366,
3641,
3257,
3126,
2025,
1609,
119,
1917,
3427,
862,
1026,
4109,
7481,
3904,
3760,
4362,
3905,
4363,
2260,
1951,
2470,
7482,
1125,
817,
4110,
4111,
3906,
1513,
1766,
2040,
1487,
4112,
3030,
3258,
2824,
3761,
3127,
7483,
7484,
1507,
7485,
2683,
733,
40,
1632,
1106,
2865,
345,
4113,
841,
2524,
230,
4364,
2984,
1846,
3259,
3428,
7486,
1263,
986,
3429,
7487,
735,
879,
254,
1137,
857,
622,
1300,
1180,
1388,
1562,
3907,
3908,
2939,
967,
2751,
2655,
1349,
592,
2133,
1692,
3324,
2985,
1994,
4114,
1679,
3909,
1901,
2185,
7488,
739,
3642,
2715,
1296,
1290,
7489,
4115,
2198,
2199,
1921,
1563,
2595,
2551,
1870,
2752,
2986,
7490,
435,
7491,
343,
1108,
596,
17,
1751,
4365,
2235,
3430,
3643,
7492,
4366,
294,
3527,
2940,
1693,
477,
979,
281,
2041,
3528,
643,
2042,
3644,
2621,
2782,
2261,
1031,
2335,
2134,
2298,
3529,
4367,
367,
1249,
2552,
7493,
3530,
7494,
4368,
1283,
3325,
2004,
240,
1762,
3326,
4369,
4370,
836,
1069,
3128,
474,
7495,
2148,
2525,
268,
3531,
7496,
3188,
1521,
1284,
7497,
1658,
1546,
4116,
7498,
3532,
3533,
7499,
4117,
3327,
2684,
1685,
4118,
961,
1673,
2622,
190,
2005,
2200,
3762,
4371,
4372,
7500,
570,
2497,
3645,
1490,
7501,
4373,
2623,
3260,
1956,
4374,
584,
1514,
396,
1045,
1944,
7502,
4375,
1967,
2444,
7503,
7504,
4376,
3910,
619,
7505,
3129,
3261,
215,
2006,
2783,
2553,
3189,
4377,
3190,
4378,
763,
4119,
3763,
4379,
7506,
7507,
1957,
1767,
2941,
3328,
3646,
1174,
452,
1477,
4380,
3329,
3130,
7508,
2825,
1253,
2382,
2186,
1091,
2285,
4120,
492,
7509,
638,
1169,
1824,
2135,
1752,
3911,
648,
926,
1021,
1324,
4381,
520,
4382,
997,
847,
1007,
892,
4383,
3764,
2262,
1871,
3647,
7510,
2400,
1784,
4384,
1952,
2942,
3080,
3191,
1728,
4121,
2043,
3648,
4385,
2007,
1701,
3131,
1551,
30,
2263,
4122,
7511,
2026,
4386,
3534,
7512,
501,
7513,
4123,
594,
3431,
2165,
1821,
3535,
3432,
3536,
3192,
829,
2826,
4124,
7514,
1680,
3132,
1225,
4125,
7515,
3262,
4387,
4126,
3133,
2336,
7516,
4388,
4127,
7517,
3912,
3913,
7518,
1847,
2383,
2596,
3330,
7519,
4389,
374,
3914,
652,
4128,
4129,
375,
1140,
798,
7520,
7521,
7522,
2361,
4390,
2264,
546,
1659,
138,
3031,
2445,
4391,
7523,
2250,
612,
1848,
910,
796,
3765,
1740,
1371,
825,
3766,
3767,
7524,
2906,
2554,
7525,
692,
444,
3032,
2624,
801,
4392,
4130,
7526,
1491,
244,
1053,
3033,
4131,
4132,
340,
7527,
3915,
1041,
2987,
293,
1168,
87,
1357,
7528,
1539,
959,
7529,
2236,
721,
694,
4133,
3768,
219,
1478,
644,
1417,
3331,
2656,
1413,
1401,
1335,
1389,
3916,
7530,
7531,
2988,
2362,
3134,
1825,
730,
1515,
184,
2827,
66,
4393,
7532,
1660,
2943,
246,
3332,
378,
1457,
226,
3433,
975,
3917,
2944,
1264,
3537,
674,
696,
7533,
163,
7534,
1141,
2417,
2166,
713,
3538,
3333,
4394,
3918,
7535,
7536,
1186,
15,
7537,
1079,
1070,
7538,
1522,
3193,
3539,
276,
1050,
2716,
758,
1126,
653,
2945,
3263,
7539,
2337,
889,
3540,
3919,
3081,
2989,
903,
1250,
4395,
3920,
3434,
3541,
1342,
1681,
1718,
766,
3264,
286,
89,
2946,
3649,
7540,
1713,
7541,
2597,
3334,
2990,
7542,
2947,
2215,
3194,
2866,
7543,
4396,
2498,
2526,
181,
387,
1075,
3921,
731,
2187,
3335,
7544,
3265,
310,
313,
3435,
2299,
770,
4134,
54,
3034,
189,
4397,
3082,
3769,
3922,
7545,
1230,
1617,
1849,
355,
3542,
4135,
4398,
3336,
111,
4136,
3650,
1350,
3135,
3436,
3035,
4137,
2149,
3266,
3543,
7546,
2784,
3923,
3924,
2991,
722,
2008,
7547,
1071,
247,
1207,
2338,
2471,
1378,
4399,
2009,
864,
1437,
1214,
4400,
373,
3770,
1142,
2216,
667,
4401,
442,
2753,
2555,
3771,
3925,
1968,
4138,
3267,
1839,
837,
170,
1107,
934,
1336,
1882,
7548,
7549,
2118,
4139,
2828,
743,
1569,
7550,
4402,
4140,
582,
2384,
1418,
3437,
7551,
1802,
7552,
357,
1395,
1729,
3651,
3268,
2418,
1564,
2237,
7553,
3083,
3772,
1633,
4403,
1114,
2085,
4141,
1532,
7554,
482,
2446,
4404,
7555,
7556,
1492,
833,
1466,
7557,
2717,
3544,
1641,
2829,
7558,
1526,
1272,
3652,
4142,
1686,
1794,
416,
2556,
1902,
1953,
1803,
7559,
3773,
2785,
3774,
1159,
2316,
7560,
2867,
4405,
1610,
1584,
3036,
2419,
2754,
443,
3269,
1163,
3136,
7561,
7562,
3926,
7563,
4143,
2499,
3037,
4406,
3927,
3137,
2103,
1647,
3545,
2010,
1872,
4144,
7564,
4145,
431,
3438,
7565,
250,
97,
81,
4146,
7566,
1648,
1850,
1558,
160,
848,
7567,
866,
740,
1694,
7568,
2201,
2830,
3195,
4147,
4407,
3653,
1687,
950,
2472,
426,
469,
3196,
3654,
3655,
3928,
7569,
7570,
1188,
424,
1995,
861,
3546,
4148,
3775,
2202,
2685,
168,
1235,
3547,
4149,
7571,
2086,
1674,
4408,
3337,
3270,
220,
2557,
1009,
7572,
3776,
670,
2992,
332,
1208,
717,
7573,
7574,
3548,
2447,
3929,
3338,
7575,
513,
7576,
1209,
2868,
3339,
3138,
4409,
1080,
7577,
7578,
7579,
7580,
2527,
3656,
3549,
815,
1587,
3930,
3931,
7581,
3550,
3439,
3777,
1254,
4410,
1328,
3038,
1390,
3932,
1741,
3933,
3778,
3934,
7582,
236,
3779,
2448,
3271,
7583,
7584,
3657,
3780,
1273,
3781,
4411,
7585,
308,
7586,
4412,
245,
4413,
1851,
2473,
1307,
2575,
430,
715,
2136,
2449,
7587,
270,
199,
2869,
3935,
7588,
3551,
2718,
1753,
761,
1754,
725,
1661,
1840,
4414,
3440,
3658,
7589,
7590,
587,
14,
3272,
227,
2598,
326,
480,
2265,
943,
2755,
3552,
291,
650,
1883,
7591,
1702,
1226,
102,
1547,
62,
3441,
904,
4415,
3442,
1164,
4150,
7592,
7593,
1224,
1548,
2756,
391,
498,
1493,
7594,
1386,
1419,
7595,
2055,
1177,
4416,
813,
880,
1081,
2363,
566,
1145,
4417,
2286,
1001,
1035,
2558,
2599,
2238,
394,
1286,
7596,
7597,
2068,
7598,
86,
1494,
1730,
3936,
491,
1588,
745,
897,
2948,
843,
3340,
3937,
2757,
2870,
3273,
1768,
998,
2217,
2069,
397,
1826,
1195,
1969,
3659,
2993,
3341,
284,
7599,
3782,
2500,
2137,
2119,
1903,
7600,
3938,
2150,
3939,
4151,
1036,
3443,
1904,
114,
2559,
4152,
209,
1527,
7601,
7602,
2949,
2831,
2625,
2385,
2719,
3139,
812,
2560,
7603,
3274,
7604,
1559,
737,
1884,
3660,
1210,
885,
28,
2686,
3553,
3783,
7605,
4153,
1004,
1779,
4418,
7606,
346,
1981,
2218,
2687,
4419,
3784,
1742,
797,
1642,
3940,
1933,
1072,
1384,
2151,
896,
3941,
3275,
3661,
3197,
2871,
3554,
7607,
2561,
1958,
4420,
2450,
1785,
7608,
7609,
7610,
3942,
4154,
1005,
1308,
3662,
4155,
2720,
4421,
4422,
1528,
2600,
161,
1178,
4156,
1982,
987,
4423,
1101,
4157,
631,
3943,
1157,
3198,
2420,
1343,
1241,
1016,
2239,
2562,
372,
877,
2339,
2501,
1160,
555,
1934,
911,
3944,
7611,
466,
1170,
169,
1051,
2907,
2688,
3663,
2474,
2994,
1182,
2011,
2563,
1251,
2626,
7612,
992,
2340,
3444,
1540,
2721,
1201,
2070,
2401,
1996,
2475,
7613,
4424,
528,
1922,
2188,
1503,
1873,
1570,
2364,
3342,
3276,
7614,
557,
1073,
7615,
1827,
3445,
2087,
2266,
3140,
3039,
3084,
767,
3085,
2786,
4425,
1006,
4158,
4426,
2341,
1267,
2176,
3664,
3199,
778,
3945,
3200,
2722,
1597,
2657,
7616,
4427,
7617,
3446,
7618,
7619,
7620,
3277,
2689,
1433,
3278,
131,
95,
1504,
3946,
723,
4159,
3141,
1841,
3555,
2758,
2189,
3947,
2027,
2104,
3665,
7621,
2995,
3948,
1218,
7622,
3343,
3201,
3949,
4160,
2576,
248,
1634,
3785,
912,
7623,
2832,
3666,
3040,
3786,
654,
53,
7624,
2996,
7625,
1688,
4428,
777,
3447,
1032,
3950,
1425,
7626,
191,
820,
2120,
2833,
971,
4429,
931,
3202,
135,
664,
783,
3787,
1997,
772,
2908,
1935,
3951,
3788,
4430,
2909,
3203,
282,
2723,
640,
1372,
3448,
1127,
922,
325,
3344,
7627,
7628,
711,
2044,
7629,
7630,
3952,
2219,
2787,
1936,
3953,
3345,
2220,
2251,
3789,
2300,
7631,
4431,
3790,
1258,
3279,
3954,
3204,
2138,
2950,
3955,
3956,
7632,
2221,
258,
3205,
4432,
101,
1227,
7633,
3280,
1755,
7634,
1391,
3281,
7635,
2910,
2056,
893,
7636,
7637,
7638,
1402,
4161,
2342,
7639,
7640,
3206,
3556,
7641,
7642,
878,
1325,
1780,
2788,
4433,
259,
1385,
2577,
744,
1183,
2267,
4434,
7643,
3957,
2502,
7644,
684,
1024,
4162,
7645,
472,
3557,
3449,
1165,
3282,
3958,
3959,
322,
2152,
881,
455,
1695,
1152,
1340,
660,
554,
2153,
4435,
1058,
4436,
4163,
830,
1065,
3346,
3960,
4437,
1923,
7646,
1703,
1918,
7647,
932,
2268,
122,
7648,
4438,
947,
677,
7649,
3791,
2627,
297,
1905,
1924,
2269,
4439,
2317,
3283,
7650,
7651,
4164,
7652,
4165,
84,
4166,
112,
989,
7653,
547,
1059,
3961,
701,
3558,
1019,
7654,
4167,
7655,
3450,
942,
639,
457,
2301,
2451,
993,
2951,
407,
851,
494,
4440,
3347,
927,
7656,
1237,
7657,
2421,
3348,
573,
4168,
680,
921,
2911,
1279,
1874,
285,
790,
1448,
1983,
719,
2167,
7658,
7659,
4441,
3962,
3963,
1649,
7660,
1541,
563,
7661,
1077,
7662,
3349,
3041,
3451,
511,
2997,
3964,
3965,
3667,
3966,
1268,
2564,
3350,
3207,
4442,
4443,
7663,
535,
1048,
1276,
1189,
2912,
2028,
3142,
1438,
1373,
2834,
2952,
1134,
2012,
7664,
4169,
1238,
2578,
3086,
1259,
7665,
700,
7666,
2953,
3143,
3668,
4170,
7667,
4171,
1146,
1875,
1906,
4444,
2601,
3967,
781,
2422,
132,
1589,
203,
147,
273,
2789,
2402,
898,
1786,
2154,
3968,
3969,
7668,
3792,
2790,
7669,
7670,
4445,
4446,
7671,
3208,
7672,
1635,
3793,
965,
7673,
1804,
2690,
1516,
3559,
1121,
1082,
1329,
3284,
3970,
1449,
3794,
65,
1128,
2835,
2913,
2759,
1590,
3795,
7674,
7675,
12,
2658,
45,
976,
2579,
3144,
4447,
517,
2528,
1013,
1037,
3209,
7676,
3796,
2836,
7677,
3797,
7678,
3452,
7679,
2602,
614,
1998,
2318,
3798,
3087,
2724,
2628,
7680,
2580,
4172,
599,
1269,
7681,
1810,
3669,
7682,
2691,
3088,
759,
1060,
489,
1805,
3351,
3285,
1358,
7683,
7684,
2386,
1387,
1215,
2629,
2252,
490,
7685,
7686,
4173,
1759,
2387,
2343,
7687,
4448,
3799,
1907,
3971,
2630,
1806,
3210,
4449,
3453,
3286,
2760,
2344,
874,
7688,
7689,
3454,
3670,
1858,
91,
2914,
3671,
3042,
3800,
4450,
7690,
3145,
3972,
2659,
7691,
3455,
1202,
1403,
3801,
2954,
2529,
1517,
2503,
4451,
3456,
2504,
7692,
4452,
7693,
2692,
1885,
1495,
1731,
3973,
2365,
4453,
7694,
2029,
7695,
7696,
3974,
2693,
1216,
237,
2581,
4174,
2319,
3975,
3802,
4454,
4455,
2694,
3560,
3457,
445,
4456,
7697,
7698,
7699,
7700,
2761,
61,
3976,
3672,
1822,
3977,
7701,
687,
2045,
935,
925,
405,
2660,
703,
1096,
1859,
2725,
4457,
3978,
1876,
1367,
2695,
3352,
918,
2105,
1781,
2476,
334,
3287,
1611,
1093,
4458,
564,
3146,
3458,
3673,
3353,
945,
2631,
2057,
4459,
7702,
1925,
872,
4175,
7703,
3459,
2696,
3089,
349,
4176,
3674,
3979,
4460,
3803,
4177,
3675,
2155,
3980,
4461,
4462,
4178,
4463,
2403,
2046,
782,
3981,
400,
251,
4179,
1624,
7704,
7705,
277,
3676,
299,
1265,
476,
1191,
3804,
2121,
4180,
4181,
1109,
205,
7706,
2582,
1e3,
2156,
3561,
1860,
7707,
7708,
7709,
4464,
7710,
4465,
2565,
107,
2477,
2157,
3982,
3460,
3147,
7711,
1533,
541,
1301,
158,
753,
4182,
2872,
3562,
7712,
1696,
370,
1088,
4183,
4466,
3563,
579,
327,
440,
162,
2240,
269,
1937,
1374,
3461,
968,
3043,
56,
1396,
3090,
2106,
3288,
3354,
7713,
1926,
2158,
4467,
2998,
7714,
3564,
7715,
7716,
3677,
4468,
2478,
7717,
2791,
7718,
1650,
4469,
7719,
2603,
7720,
7721,
3983,
2661,
3355,
1149,
3356,
3984,
3805,
3985,
7722,
1076,
49,
7723,
951,
3211,
3289,
3290,
450,
2837,
920,
7724,
1811,
2792,
2366,
4184,
1908,
1138,
2367,
3806,
3462,
7725,
3212,
4470,
1909,
1147,
1518,
2423,
4471,
3807,
7726,
4472,
2388,
2604,
260,
1795,
3213,
7727,
7728,
3808,
3291,
708,
7729,
3565,
1704,
7730,
3566,
1351,
1618,
3357,
2999,
1886,
944,
4185,
3358,
4186,
3044,
3359,
4187,
7731,
3678,
422,
413,
1714,
3292,
500,
2058,
2345,
4188,
2479,
7732,
1344,
1910,
954,
7733,
1668,
7734,
7735,
3986,
2404,
4189,
3567,
3809,
4190,
7736,
2302,
1318,
2505,
3091,
133,
3092,
2873,
4473,
629,
31,
2838,
2697,
3810,
4474,
850,
949,
4475,
3987,
2955,
1732,
2088,
4191,
1496,
1852,
7737,
3988,
620,
3214,
981,
1242,
3679,
3360,
1619,
3680,
1643,
3293,
2139,
2452,
1970,
1719,
3463,
2168,
7738,
3215,
7739,
7740,
3361,
1828,
7741,
1277,
4476,
1565,
2047,
7742,
1636,
3568,
3093,
7743,
869,
2839,
655,
3811,
3812,
3094,
3989,
3e3,
3813,
1310,
3569,
4477,
7744,
7745,
7746,
1733,
558,
4478,
3681,
335,
1549,
3045,
1756,
4192,
3682,
1945,
3464,
1829,
1291,
1192,
470,
2726,
2107,
2793,
913,
1054,
3990,
7747,
1027,
7748,
3046,
3991,
4479,
982,
2662,
3362,
3148,
3465,
3216,
3217,
1946,
2794,
7749,
571,
4480,
7750,
1830,
7751,
3570,
2583,
1523,
2424,
7752,
2089,
984,
4481,
3683,
1959,
7753,
3684,
852,
923,
2795,
3466,
3685,
969,
1519,
999,
2048,
2320,
1705,
7754,
3095,
615,
1662,
151,
597,
3992,
2405,
2321,
1049,
275,
4482,
3686,
4193,
568,
3687,
3571,
2480,
4194,
3688,
7755,
2425,
2270,
409,
3218,
7756,
1566,
2874,
3467,
1002,
769,
2840,
194,
2090,
3149,
3689,
2222,
3294,
4195,
628,
1505,
7757,
7758,
1763,
2177,
3001,
3993,
521,
1161,
2584,
1787,
2203,
2406,
4483,
3994,
1625,
4196,
4197,
412,
42,
3096,
464,
7759,
2632,
4484,
3363,
1760,
1571,
2875,
3468,
2530,
1219,
2204,
3814,
2633,
2140,
2368,
4485,
4486,
3295,
1651,
3364,
3572,
7760,
7761,
3573,
2481,
3469,
7762,
3690,
7763,
7764,
2271,
2091,
460,
7765,
4487,
7766,
3002,
962,
588,
3574,
289,
3219,
2634,
1116,
52,
7767,
3047,
1796,
7768,
7769,
7770,
1467,
7771,
1598,
1143,
3691,
4198,
1984,
1734,
1067,
4488,
1280,
3365,
465,
4489,
1572,
510,
7772,
1927,
2241,
1812,
1644,
3575,
7773,
4490,
3692,
7774,
7775,
2663,
1573,
1534,
7776,
7777,
4199,
536,
1807,
1761,
3470,
3815,
3150,
2635,
7778,
7779,
7780,
4491,
3471,
2915,
1911,
2796,
7781,
3296,
1122,
377,
3220,
7782,
360,
7783,
7784,
4200,
1529,
551,
7785,
2059,
3693,
1769,
2426,
7786,
2916,
4201,
3297,
3097,
2322,
2108,
2030,
4492,
1404,
136,
1468,
1479,
672,
1171,
3221,
2303,
271,
3151,
7787,
2762,
7788,
2049,
678,
2727,
865,
1947,
4493,
7789,
2013,
3995,
2956,
7790,
2728,
2223,
1397,
3048,
3694,
4494,
4495,
1735,
2917,
3366,
3576,
7791,
3816,
509,
2841,
2453,
2876,
3817,
7792,
7793,
3152,
3153,
4496,
4202,
2531,
4497,
2304,
1166,
1010,
552,
681,
1887,
7794,
7795,
2957,
2958,
3996,
1287,
1596,
1861,
3154,
358,
453,
736,
175,
478,
1117,
905,
1167,
1097,
7796,
1853,
1530,
7797,
1706,
7798,
2178,
3472,
2287,
3695,
3473,
3577,
4203,
2092,
4204,
7799,
3367,
1193,
2482,
4205,
1458,
2190,
2205,
1862,
1888,
1421,
3298,
2918,
3049,
2179,
3474,
595,
2122,
7800,
3997,
7801,
7802,
4206,
1707,
2636,
223,
3696,
1359,
751,
3098,
183,
3475,
7803,
2797,
3003,
419,
2369,
633,
704,
3818,
2389,
241,
7804,
7805,
7806,
838,
3004,
3697,
2272,
2763,
2454,
3819,
1938,
2050,
3998,
1309,
3099,
2242,
1181,
7807,
1136,
2206,
3820,
2370,
1446,
4207,
2305,
4498,
7808,
7809,
4208,
1055,
2605,
484,
3698,
7810,
3999,
625,
4209,
2273,
3368,
1499,
4210,
4e3,
7811,
4001,
4211,
3222,
2274,
2275,
3476,
7812,
7813,
2764,
808,
2606,
3699,
3369,
4002,
4212,
3100,
2532,
526,
3370,
3821,
4213,
955,
7814,
1620,
4214,
2637,
2427,
7815,
1429,
3700,
1669,
1831,
994,
928,
7816,
3578,
1260,
7817,
7818,
7819,
1948,
2288,
741,
2919,
1626,
4215,
2729,
2455,
867,
1184,
362,
3371,
1392,
7820,
7821,
4003,
4216,
1770,
1736,
3223,
2920,
4499,
4500,
1928,
2698,
1459,
1158,
7822,
3050,
3372,
2877,
1292,
1929,
2506,
2842,
3701,
1985,
1187,
2071,
2014,
2607,
4217,
7823,
2566,
2507,
2169,
3702,
2483,
3299,
7824,
3703,
4501,
7825,
7826,
666,
1003,
3005,
1022,
3579,
4218,
7827,
4502,
1813,
2253,
574,
3822,
1603,
295,
1535,
705,
3823,
4219,
283,
858,
417,
7828,
7829,
3224,
4503,
4504,
3051,
1220,
1889,
1046,
2276,
2456,
4004,
1393,
1599,
689,
2567,
388,
4220,
7830,
2484,
802,
7831,
2798,
3824,
2060,
1405,
2254,
7832,
4505,
3825,
2109,
1052,
1345,
3225,
1585,
7833,
809,
7834,
7835,
7836,
575,
2730,
3477,
956,
1552,
1469,
1144,
2323,
7837,
2324,
1560,
2457,
3580,
3226,
4005,
616,
2207,
3155,
2180,
2289,
7838,
1832,
7839,
3478,
4506,
7840,
1319,
3704,
3705,
1211,
3581,
1023,
3227,
1293,
2799,
7841,
7842,
7843,
3826,
607,
2306,
3827,
762,
2878,
1439,
4221,
1360,
7844,
1485,
3052,
7845,
4507,
1038,
4222,
1450,
2061,
2638,
4223,
1379,
4508,
2585,
7846,
7847,
4224,
1352,
1414,
2325,
2921,
1172,
7848,
7849,
3828,
3829,
7850,
1797,
1451,
7851,
7852,
7853,
7854,
2922,
4006,
4007,
2485,
2346,
411,
4008,
4009,
3582,
3300,
3101,
4509,
1561,
2664,
1452,
4010,
1375,
7855,
7856,
47,
2959,
316,
7857,
1406,
1591,
2923,
3156,
7858,
1025,
2141,
3102,
3157,
354,
2731,
884,
2224,
4225,
2407,
508,
3706,
726,
3583,
996,
2428,
3584,
729,
7859,
392,
2191,
1453,
4011,
4510,
3707,
7860,
7861,
2458,
3585,
2608,
1675,
2800,
919,
2347,
2960,
2348,
1270,
4511,
4012,
73,
7862,
7863,
647,
7864,
3228,
2843,
2255,
1550,
1346,
3006,
7865,
1332,
883,
3479,
7866,
7867,
7868,
7869,
3301,
2765,
7870,
1212,
831,
1347,
4226,
4512,
2326,
3830,
1863,
3053,
720,
3831,
4513,
4514,
3832,
7871,
4227,
7872,
7873,
4515,
7874,
7875,
1798,
4516,
3708,
2609,
4517,
3586,
1645,
2371,
7876,
7877,
2924,
669,
2208,
2665,
2429,
7878,
2879,
7879,
7880,
1028,
3229,
7881,
4228,
2408,
7882,
2256,
1353,
7883,
7884,
4518,
3158,
518,
7885,
4013,
7886,
4229,
1960,
7887,
2142,
4230,
7888,
7889,
3007,
2349,
2350,
3833,
516,
1833,
1454,
4014,
2699,
4231,
4519,
2225,
2610,
1971,
1129,
3587,
7890,
2766,
7891,
2961,
1422,
577,
1470,
3008,
1524,
3373,
7892,
7893,
432,
4232,
3054,
3480,
7894,
2586,
1455,
2508,
2226,
1972,
1175,
7895,
1020,
2732,
4015,
3481,
4520,
7896,
2733,
7897,
1743,
1361,
3055,
3482,
2639,
4016,
4233,
4521,
2290,
895,
924,
4234,
2170,
331,
2243,
3056,
166,
1627,
3057,
1098,
7898,
1232,
2880,
2227,
3374,
4522,
657,
403,
1196,
2372,
542,
3709,
3375,
1600,
4235,
3483,
7899,
4523,
2767,
3230,
576,
530,
1362,
7900,
4524,
2533,
2666,
3710,
4017,
7901,
842,
3834,
7902,
2801,
2031,
1014,
4018,
213,
2700,
3376,
665,
621,
4236,
7903,
3711,
2925,
2430,
7904,
2431,
3302,
3588,
3377,
7905,
4237,
2534,
4238,
4525,
3589,
1682,
4239,
3484,
1380,
7906,
724,
2277,
600,
1670,
7907,
1337,
1233,
4526,
3103,
2244,
7908,
1621,
4527,
7909,
651,
4240,
7910,
1612,
4241,
2611,
7911,
2844,
7912,
2734,
2307,
3058,
7913,
716,
2459,
3059,
174,
1255,
2701,
4019,
3590,
548,
1320,
1398,
728,
4020,
1574,
7914,
1890,
1197,
3060,
4021,
7915,
3061,
3062,
3712,
3591,
3713,
747,
7916,
635,
4242,
4528,
7917,
7918,
7919,
4243,
7920,
7921,
4529,
7922,
3378,
4530,
2432,
451,
7923,
3714,
2535,
2072,
4244,
2735,
4245,
4022,
7924,
1764,
4531,
7925,
4246,
350,
7926,
2278,
2390,
2486,
7927,
4247,
4023,
2245,
1434,
4024,
488,
4532,
458,
4248,
4025,
3715,
771,
1330,
2391,
3835,
2568,
3159,
2159,
2409,
1553,
2667,
3160,
4249,
7928,
2487,
2881,
2612,
1720,
2702,
4250,
3379,
4533,
7929,
2536,
4251,
7930,
3231,
4252,
2768,
7931,
2015,
2736,
7932,
1155,
1017,
3716,
3836,
7933,
3303,
2308,
201,
1864,
4253,
1430,
7934,
4026,
7935,
7936,
7937,
7938,
7939,
4254,
1604,
7940,
414,
1865,
371,
2587,
4534,
4535,
3485,
2016,
3104,
4536,
1708,
960,
4255,
887,
389,
2171,
1536,
1663,
1721,
7941,
2228,
4027,
2351,
2926,
1580,
7942,
7943,
7944,
1744,
7945,
2537,
4537,
4538,
7946,
4539,
7947,
2073,
7948,
7949,
3592,
3380,
2882,
4256,
7950,
4257,
2640,
3381,
2802,
673,
2703,
2460,
709,
3486,
4028,
3593,
4258,
7951,
1148,
502,
634,
7952,
7953,
1204,
4540,
3594,
1575,
4541,
2613,
3717,
7954,
3718,
3105,
948,
3232,
121,
1745,
3837,
1110,
7955,
4259,
3063,
2509,
3009,
4029,
3719,
1151,
1771,
3838,
1488,
4030,
1986,
7956,
2433,
3487,
7957,
7958,
2093,
7959,
4260,
3839,
1213,
1407,
2803,
531,
2737,
2538,
3233,
1011,
1537,
7960,
2769,
4261,
3106,
1061,
7961,
3720,
3721,
1866,
2883,
7962,
2017,
120,
4262,
4263,
2062,
3595,
3234,
2309,
3840,
2668,
3382,
1954,
4542,
7963,
7964,
3488,
1047,
2704,
1266,
7965,
1368,
4543,
2845,
649,
3383,
3841,
2539,
2738,
1102,
2846,
2669,
7966,
7967,
1999,
7968,
1111,
3596,
2962,
7969,
2488,
3842,
3597,
2804,
1854,
3384,
3722,
7970,
7971,
3385,
2410,
2884,
3304,
3235,
3598,
7972,
2569,
7973,
3599,
2805,
4031,
1460,
856,
7974,
3600,
7975,
2885,
2963,
7976,
2886,
3843,
7977,
4264,
632,
2510,
875,
3844,
1697,
3845,
2291,
7978,
7979,
4544,
3010,
1239,
580,
4545,
4265,
7980,
914,
936,
2074,
1190,
4032,
1039,
2123,
7981,
7982,
7983,
3386,
1473,
7984,
1354,
4266,
3846,
7985,
2172,
3064,
4033,
915,
3305,
4267,
4268,
3306,
1605,
1834,
7986,
2739,
398,
3601,
4269,
3847,
4034,
328,
1912,
2847,
4035,
3848,
1331,
4270,
3011,
937,
4271,
7987,
3602,
4036,
4037,
3387,
2160,
4546,
3388,
524,
742,
538,
3065,
1012,
7988,
7989,
3849,
2461,
7990,
658,
1103,
225,
3850,
7991,
7992,
4547,
7993,
4548,
7994,
3236,
1243,
7995,
4038,
963,
2246,
4549,
7996,
2705,
3603,
3161,
7997,
7998,
2588,
2327,
7999,
4550,
8e3,
8001,
8002,
3489,
3307,
957,
3389,
2540,
2032,
1930,
2927,
2462,
870,
2018,
3604,
1746,
2770,
2771,
2434,
2463,
8003,
3851,
8004,
3723,
3107,
3724,
3490,
3390,
3725,
8005,
1179,
3066,
8006,
3162,
2373,
4272,
3726,
2541,
3163,
3108,
2740,
4039,
8007,
3391,
1556,
2542,
2292,
977,
2887,
2033,
4040,
1205,
3392,
8008,
1765,
3393,
3164,
2124,
1271,
1689,
714,
4551,
3491,
8009,
2328,
3852,
533,
4273,
3605,
2181,
617,
8010,
2464,
3308,
3492,
2310,
8011,
8012,
3165,
8013,
8014,
3853,
1987,
618,
427,
2641,
3493,
3394,
8015,
8016,
1244,
1690,
8017,
2806,
4274,
4552,
8018,
3494,
8019,
8020,
2279,
1576,
473,
3606,
4275,
3395,
972,
8021,
3607,
8022,
3067,
8023,
8024,
4553,
4554,
8025,
3727,
4041,
4042,
8026,
153,
4555,
356,
8027,
1891,
2888,
4276,
2143,
408,
803,
2352,
8028,
3854,
8029,
4277,
1646,
2570,
2511,
4556,
4557,
3855,
8030,
3856,
4278,
8031,
2411,
3396,
752,
8032,
8033,
1961,
2964,
8034,
746,
3012,
2465,
8035,
4279,
3728,
698,
4558,
1892,
4280,
3608,
2543,
4559,
3609,
3857,
8036,
3166,
3397,
8037,
1823,
1302,
4043,
2706,
3858,
1973,
4281,
8038,
4282,
3167,
823,
1303,
1288,
1236,
2848,
3495,
4044,
3398,
774,
3859,
8039,
1581,
4560,
1304,
2849,
3860,
4561,
8040,
2435,
2161,
1083,
3237,
4283,
4045,
4284,
344,
1173,
288,
2311,
454,
1683,
8041,
8042,
1461,
4562,
4046,
2589,
8043,
8044,
4563,
985,
894,
8045,
3399,
3168,
8046,
1913,
2928,
3729,
1988,
8047,
2110,
1974,
8048,
4047,
8049,
2571,
1194,
425,
8050,
4564,
3169,
1245,
3730,
4285,
8051,
8052,
2850,
8053,
636,
4565,
1855,
3861,
760,
1799,
8054,
4286,
2209,
1508,
4566,
4048,
1893,
1684,
2293,
8055,
8056,
8057,
4287,
4288,
2210,
479,
8058,
8059,
832,
8060,
4049,
2489,
8061,
2965,
2490,
3731,
990,
3109,
627,
1814,
2642,
4289,
1582,
4290,
2125,
2111,
3496,
4567,
8062,
799,
4291,
3170,
8063,
4568,
2112,
1737,
3013,
1018,
543,
754,
4292,
3309,
1676,
4569,
4570,
4050,
8064,
1489,
8065,
3497,
8066,
2614,
2889,
4051,
8067,
8068,
2966,
8069,
8070,
8071,
8072,
3171,
4571,
4572,
2182,
1722,
8073,
3238,
3239,
1842,
3610,
1715,
481,
365,
1975,
1856,
8074,
8075,
1962,
2491,
4573,
8076,
2126,
3611,
3240,
433,
1894,
2063,
2075,
8077,
602,
2741,
8078,
8079,
8080,
8081,
8082,
3014,
1628,
3400,
8083,
3172,
4574,
4052,
2890,
4575,
2512,
8084,
2544,
2772,
8085,
8086,
8087,
3310,
4576,
2891,
8088,
4577,
8089,
2851,
4578,
4579,
1221,
2967,
4053,
2513,
8090,
8091,
8092,
1867,
1989,
8093,
8094,
8095,
1895,
8096,
8097,
4580,
1896,
4054,
318,
8098,
2094,
4055,
4293,
8099,
8100,
485,
8101,
938,
3862,
553,
2670,
116,
8102,
3863,
3612,
8103,
3498,
2671,
2773,
3401,
3311,
2807,
8104,
3613,
2929,
4056,
1747,
2930,
2968,
8105,
8106,
207,
8107,
8108,
2672,
4581,
2514,
8109,
3015,
890,
3614,
3864,
8110,
1877,
3732,
3402,
8111,
2183,
2353,
3403,
1652,
8112,
8113,
8114,
941,
2294,
208,
3499,
4057,
2019,
330,
4294,
3865,
2892,
2492,
3733,
4295,
8115,
8116,
8117,
8118,
2515,
1613,
4582,
8119,
3312,
3866,
2516,
8120,
4058,
8121,
1637,
4059,
2466,
4583,
3867,
8122,
2493,
3016,
3734,
8123,
8124,
2192,
8125,
8126,
2162,
8127,
8128,
8129,
8130,
8131,
8132,
8133,
8134,
8135,
8136,
8137,
8138,
8139,
8140,
8141,
8142,
8143,
8144,
8145,
8146,
8147,
8148,
8149,
8150,
8151,
8152,
8153,
8154,
8155,
8156,
8157,
8158,
8159,
8160,
8161,
8162,
8163,
8164,
8165,
8166,
8167,
8168,
8169,
8170,
8171,
8172,
8173,
8174,
8175,
8176,
8177,
8178,
8179,
8180,
8181,
8182,
8183,
8184,
8185,
8186,
8187,
8188,
8189,
8190,
8191,
8192,
8193,
8194,
8195,
8196,
8197,
8198,
8199,
8200,
8201,
8202,
8203,
8204,
8205,
8206,
8207,
8208,
8209,
8210,
8211,
8212,
8213,
8214,
8215,
8216,
8217,
8218,
8219,
8220,
8221,
8222,
8223,
8224,
8225,
8226,
8227,
8228,
8229,
8230,
8231,
8232,
8233,
8234,
8235,
8236,
8237,
8238,
8239,
8240,
8241,
8242,
8243,
8244,
8245,
8246,
8247,
8248,
8249,
8250,
8251,
8252,
8253,
8254,
8255,
8256,
8257,
8258,
8259,
8260,
8261,
8262,
8263,
8264,
8265,
8266,
8267,
8268,
8269,
8270,
8271,
8272,
8273,
8274,
8275,
8276,
8277,
8278,
8279,
8280,
8281,
8282,
8283,
8284,
8285,
8286,
8287,
8288,
8289,
8290,
8291,
8292,
8293,
8294,
8295,
8296,
8297,
8298,
8299,
8300,
8301,
8302,
8303,
8304,
8305,
8306,
8307,
8308,
8309,
8310,
8311,
8312,
8313,
8314,
8315,
8316,
8317,
8318,
8319,
8320,
8321,
8322,
8323,
8324,
8325,
8326,
8327,
8328,
8329,
8330,
8331,
8332,
8333,
8334,
8335,
8336,
8337,
8338,
8339,
8340,
8341,
8342,
8343,
8344,
8345,
8346,
8347,
8348,
8349,
8350,
8351,
8352,
8353,
8354,
8355,
8356,
8357,
8358,
8359,
8360,
8361,
8362,
8363,
8364,
8365,
8366,
8367,
8368,
8369,
8370,
8371,
8372,
8373,
8374,
8375,
8376,
8377,
8378,
8379,
8380,
8381,
8382,
8383,
8384,
8385,
8386,
8387,
8388,
8389,
8390,
8391,
8392,
8393,
8394,
8395,
8396,
8397,
8398,
8399,
8400,
8401,
8402,
8403,
8404,
8405,
8406,
8407,
8408,
8409,
8410,
8411,
8412,
8413,
8414,
8415,
8416,
8417,
8418,
8419,
8420,
8421,
8422,
8423,
8424,
8425,
8426,
8427,
8428,
8429,
8430,
8431,
8432,
8433,
8434,
8435,
8436,
8437,
8438,
8439,
8440,
8441,
8442,
8443,
8444,
8445,
8446,
8447,
8448,
8449,
8450,
8451,
8452,
8453,
8454,
8455,
8456,
8457,
8458,
8459,
8460,
8461,
8462,
8463,
8464,
8465,
8466,
8467,
8468,
8469,
8470,
8471,
8472,
8473,
8474,
8475,
8476,
8477,
8478,
8479,
8480,
8481,
8482,
8483,
8484,
8485,
8486,
8487,
8488,
8489,
8490,
8491,
8492,
8493,
8494,
8495,
8496,
8497,
8498,
8499,
8500,
8501,
8502,
8503,
8504,
8505,
8506,
8507,
8508,
8509,
8510,
8511,
8512,
8513,
8514,
8515,
8516,
8517,
8518,
8519,
8520,
8521,
8522,
8523,
8524,
8525,
8526,
8527,
8528,
8529,
8530,
8531,
8532,
8533,
8534,
8535,
8536,
8537,
8538,
8539,
8540,
8541,
8542,
8543,
8544,
8545,
8546,
8547,
8548,
8549,
8550,
8551,
8552,
8553,
8554,
8555,
8556,
8557,
8558,
8559,
8560,
8561,
8562,
8563,
8564,
8565,
8566,
8567,
8568,
8569,
8570,
8571,
8572,
8573,
8574,
8575,
8576,
8577,
8578,
8579,
8580,
8581,
8582,
8583,
8584,
8585,
8586,
8587,
8588,
8589,
8590,
8591,
8592,
8593,
8594,
8595,
8596,
8597,
8598,
8599,
8600,
8601,
8602,
8603,
8604,
8605,
8606,
8607,
8608,
8609,
8610,
8611,
8612,
8613,
8614,
8615,
8616,
8617,
8618,
8619,
8620,
8621,
8622,
8623,
8624,
8625,
8626,
8627,
8628,
8629,
8630,
8631,
8632,
8633,
8634,
8635,
8636,
8637,
8638,
8639,
8640,
8641,
8642,
8643,
8644,
8645,
8646,
8647,
8648,
8649,
8650,
8651,
8652,
8653,
8654,
8655,
8656,
8657,
8658,
8659,
8660,
8661,
8662,
8663,
8664,
8665,
8666,
8667,
8668,
8669,
8670,
8671,
8672,
8673,
8674,
8675,
8676,
8677,
8678,
8679,
8680,
8681,
8682,
8683,
8684,
8685,
8686,
8687,
8688,
8689,
8690,
8691,
8692,
8693,
8694,
8695,
8696,
8697,
8698,
8699,
8700,
8701,
8702,
8703,
8704,
8705,
8706,
8707,
8708,
8709,
8710,
8711,
8712,
8713,
8714,
8715,
8716,
8717,
8718,
8719,
8720,
8721,
8722,
8723,
8724,
8725,
8726,
8727,
8728,
8729,
8730,
8731,
8732,
8733,
8734,
8735,
8736,
8737,
8738,
8739,
8740,
8741
];
}
});
// node_modules/jschardet/src/euckrfreq.js
var require_euckrfreq = __commonJS({
"node_modules/jschardet/src/euckrfreq.js"(exports) {
exports.EUCKR_TYPICAL_DISTRIBUTION_RATIO = 6;
exports.EUCKR_TABLE_SIZE = 2352;
exports.EUCKRCharToFreqOrder = [
13,
130,
120,
1396,
481,
1719,
1720,
328,
609,
212,
1721,
707,
400,
299,
1722,
87,
1397,
1723,
104,
536,
1117,
1203,
1724,
1267,
685,
1268,
508,
1725,
1726,
1727,
1728,
1398,
1399,
1729,
1730,
1731,
141,
621,
326,
1057,
368,
1732,
267,
488,
20,
1733,
1269,
1734,
945,
1400,
1735,
47,
904,
1270,
1736,
1737,
773,
248,
1738,
409,
313,
786,
429,
1739,
116,
987,
813,
1401,
683,
75,
1204,
145,
1740,
1741,
1742,
1743,
16,
847,
667,
622,
708,
1744,
1745,
1746,
966,
787,
304,
129,
1747,
60,
820,
123,
676,
1748,
1749,
1750,
1751,
617,
1752,
626,
1753,
1754,
1755,
1756,
653,
1757,
1758,
1759,
1760,
1761,
1762,
856,
344,
1763,
1764,
1765,
1766,
89,
401,
418,
806,
905,
848,
1767,
1768,
1769,
946,
1205,
709,
1770,
1118,
1771,
241,
1772,
1773,
1774,
1271,
1775,
569,
1776,
999,
1777,
1778,
1779,
1780,
337,
751,
1058,
28,
628,
254,
1781,
177,
906,
270,
349,
891,
1079,
1782,
19,
1783,
379,
1784,
315,
1785,
629,
754,
1402,
559,
1786,
636,
203,
1206,
1787,
710,
567,
1788,
935,
814,
1789,
1790,
1207,
766,
528,
1791,
1792,
1208,
1793,
1794,
1795,
1796,
1797,
1403,
1798,
1799,
533,
1059,
1404,
1405,
1156,
1406,
936,
884,
1080,
1800,
351,
1801,
1802,
1803,
1804,
1805,
801,
1806,
1807,
1808,
1119,
1809,
1157,
714,
474,
1407,
1810,
298,
899,
885,
1811,
1120,
802,
1158,
1812,
892,
1813,
1814,
1408,
659,
1815,
1816,
1121,
1817,
1818,
1819,
1820,
1821,
1822,
319,
1823,
594,
545,
1824,
815,
937,
1209,
1825,
1826,
573,
1409,
1022,
1827,
1210,
1828,
1829,
1830,
1831,
1832,
1833,
556,
722,
807,
1122,
1060,
1834,
697,
1835,
900,
557,
715,
1836,
1410,
540,
1411,
752,
1159,
294,
597,
1211,
976,
803,
770,
1412,
1837,
1838,
39,
794,
1413,
358,
1839,
371,
925,
1840,
453,
661,
788,
531,
723,
544,
1023,
1081,
869,
91,
1841,
392,
430,
790,
602,
1414,
677,
1082,
457,
1415,
1416,
1842,
1843,
475,
327,
1024,
1417,
795,
121,
1844,
733,
403,
1418,
1845,
1846,
1847,
300,
119,
711,
1212,
627,
1848,
1272,
207,
1849,
1850,
796,
1213,
382,
1851,
519,
1852,
1083,
893,
1853,
1854,
1855,
367,
809,
487,
671,
1856,
663,
1857,
1858,
956,
471,
306,
857,
1859,
1860,
1160,
1084,
1861,
1862,
1863,
1864,
1865,
1061,
1866,
1867,
1868,
1869,
1870,
1871,
282,
96,
574,
1872,
502,
1085,
1873,
1214,
1874,
907,
1875,
1876,
827,
977,
1419,
1420,
1421,
268,
1877,
1422,
1878,
1879,
1880,
308,
1881,
2,
537,
1882,
1883,
1215,
1884,
1885,
127,
791,
1886,
1273,
1423,
1887,
34,
336,
404,
643,
1888,
571,
654,
894,
840,
1889,
0,
886,
1274,
122,
575,
260,
908,
938,
1890,
1275,
410,
316,
1891,
1892,
100,
1893,
1894,
1123,
48,
1161,
1124,
1025,
1895,
633,
901,
1276,
1896,
1897,
115,
816,
1898,
317,
1899,
694,
1900,
909,
734,
1424,
572,
866,
1425,
691,
85,
524,
1010,
543,
394,
841,
1901,
1902,
1903,
1026,
1904,
1905,
1906,
1907,
1908,
1909,
30,
451,
651,
988,
310,
1910,
1911,
1426,
810,
1216,
93,
1912,
1913,
1277,
1217,
1914,
858,
759,
45,
58,
181,
610,
269,
1915,
1916,
131,
1062,
551,
443,
1e3,
821,
1427,
957,
895,
1086,
1917,
1918,
375,
1919,
359,
1920,
687,
1921,
822,
1922,
293,
1923,
1924,
40,
662,
118,
692,
29,
939,
887,
640,
482,
174,
1925,
69,
1162,
728,
1428,
910,
1926,
1278,
1218,
1279,
386,
870,
217,
854,
1163,
823,
1927,
1928,
1929,
1930,
834,
1931,
78,
1932,
859,
1933,
1063,
1934,
1935,
1936,
1937,
438,
1164,
208,
595,
1938,
1939,
1940,
1941,
1219,
1125,
1942,
280,
888,
1429,
1430,
1220,
1431,
1943,
1944,
1945,
1946,
1947,
1280,
150,
510,
1432,
1948,
1949,
1950,
1951,
1952,
1953,
1954,
1011,
1087,
1955,
1433,
1043,
1956,
881,
1957,
614,
958,
1064,
1065,
1221,
1958,
638,
1001,
860,
967,
896,
1434,
989,
492,
553,
1281,
1165,
1959,
1282,
1002,
1283,
1222,
1960,
1961,
1962,
1963,
36,
383,
228,
753,
247,
454,
1964,
876,
678,
1965,
1966,
1284,
126,
464,
490,
835,
136,
672,
529,
940,
1088,
1435,
473,
1967,
1968,
467,
50,
390,
227,
587,
279,
378,
598,
792,
968,
240,
151,
160,
849,
882,
1126,
1285,
639,
1044,
133,
140,
288,
360,
811,
563,
1027,
561,
142,
523,
1969,
1970,
1971,
7,
103,
296,
439,
407,
506,
634,
990,
1972,
1973,
1974,
1975,
645,
1976,
1977,
1978,
1979,
1980,
1981,
236,
1982,
1436,
1983,
1984,
1089,
192,
828,
618,
518,
1166,
333,
1127,
1985,
818,
1223,
1986,
1987,
1988,
1989,
1990,
1991,
1992,
1993,
342,
1128,
1286,
746,
842,
1994,
1995,
560,
223,
1287,
98,
8,
189,
650,
978,
1288,
1996,
1437,
1997,
17,
345,
250,
423,
277,
234,
512,
226,
97,
289,
42,
167,
1998,
201,
1999,
2e3,
843,
836,
824,
532,
338,
783,
1090,
182,
576,
436,
1438,
1439,
527,
500,
2001,
947,
889,
2002,
2003,
2004,
2005,
262,
600,
314,
447,
2006,
547,
2007,
693,
738,
1129,
2008,
71,
1440,
745,
619,
688,
2009,
829,
2010,
2011,
147,
2012,
33,
948,
2013,
2014,
74,
224,
2015,
61,
191,
918,
399,
637,
2016,
1028,
1130,
257,
902,
2017,
2018,
2019,
2020,
2021,
2022,
2023,
2024,
2025,
2026,
837,
2027,
2028,
2029,
2030,
179,
874,
591,
52,
724,
246,
2031,
2032,
2033,
2034,
1167,
969,
2035,
1289,
630,
605,
911,
1091,
1168,
2036,
2037,
2038,
1441,
912,
2039,
623,
2040,
2041,
253,
1169,
1290,
2042,
1442,
146,
620,
611,
577,
433,
2043,
1224,
719,
1170,
959,
440,
437,
534,
84,
388,
480,
1131,
159,
220,
198,
679,
2044,
1012,
819,
1066,
1443,
113,
1225,
194,
318,
1003,
1029,
2045,
2046,
2047,
2048,
1067,
2049,
2050,
2051,
2052,
2053,
59,
913,
112,
2054,
632,
2055,
455,
144,
739,
1291,
2056,
273,
681,
499,
2057,
448,
2058,
2059,
760,
2060,
2061,
970,
384,
169,
245,
1132,
2062,
2063,
414,
1444,
2064,
2065,
41,
235,
2066,
157,
252,
877,
568,
919,
789,
580,
2067,
725,
2068,
2069,
1292,
2070,
2071,
1445,
2072,
1446,
2073,
2074,
55,
588,
66,
1447,
271,
1092,
2075,
1226,
2076,
960,
1013,
372,
2077,
2078,
2079,
2080,
2081,
1293,
2082,
2083,
2084,
2085,
850,
2086,
2087,
2088,
2089,
2090,
186,
2091,
1068,
180,
2092,
2093,
2094,
109,
1227,
522,
606,
2095,
867,
1448,
1093,
991,
1171,
926,
353,
1133,
2096,
581,
2097,
2098,
2099,
1294,
1449,
1450,
2100,
596,
1172,
1014,
1228,
2101,
1451,
1295,
1173,
1229,
2102,
2103,
1296,
1134,
1452,
949,
1135,
2104,
2105,
1094,
1453,
1454,
1455,
2106,
1095,
2107,
2108,
2109,
2110,
2111,
2112,
2113,
2114,
2115,
2116,
2117,
804,
2118,
2119,
1230,
1231,
805,
1456,
405,
1136,
2120,
2121,
2122,
2123,
2124,
720,
701,
1297,
992,
1457,
927,
1004,
2125,
2126,
2127,
2128,
2129,
2130,
22,
417,
2131,
303,
2132,
385,
2133,
971,
520,
513,
2134,
1174,
73,
1096,
231,
274,
962,
1458,
673,
2135,
1459,
2136,
152,
1137,
2137,
2138,
2139,
2140,
1005,
1138,
1460,
1139,
2141,
2142,
2143,
2144,
11,
374,
844,
2145,
154,
1232,
46,
1461,
2146,
838,
830,
721,
1233,
106,
2147,
90,
428,
462,
578,
566,
1175,
352,
2148,
2149,
538,
1234,
124,
1298,
2150,
1462,
761,
565,
2151,
686,
2152,
649,
2153,
72,
173,
2154,
460,
415,
2155,
1463,
2156,
1235,
305,
2157,
2158,
2159,
2160,
2161,
2162,
579,
2163,
2164,
2165,
2166,
2167,
747,
2168,
2169,
2170,
2171,
1464,
669,
2172,
2173,
2174,
2175,
2176,
1465,
2177,
23,
530,
285,
2178,
335,
729,
2179,
397,
2180,
2181,
2182,
1030,
2183,
2184,
698,
2185,
2186,
325,
2187,
2188,
369,
2189,
799,
1097,
1015,
348,
2190,
1069,
680,
2191,
851,
1466,
2192,
2193,
10,
2194,
613,
424,
2195,
979,
108,
449,
589,
27,
172,
81,
1031,
80,
774,
281,
350,
1032,
525,
301,
582,
1176,
2196,
674,
1045,
2197,
2198,
1467,
730,
762,
2199,
2200,
2201,
2202,
1468,
2203,
993,
2204,
2205,
266,
1070,
963,
1140,
2206,
2207,
2208,
664,
1098,
972,
2209,
2210,
2211,
1177,
1469,
1470,
871,
2212,
2213,
2214,
2215,
2216,
1471,
2217,
2218,
2219,
2220,
2221,
2222,
2223,
2224,
2225,
2226,
2227,
1472,
1236,
2228,
2229,
2230,
2231,
2232,
2233,
2234,
2235,
1299,
2236,
2237,
200,
2238,
477,
373,
2239,
2240,
731,
825,
777,
2241,
2242,
2243,
521,
486,
548,
2244,
2245,
2246,
1473,
1300,
53,
549,
137,
875,
76,
158,
2247,
1301,
1474,
469,
396,
1016,
278,
712,
2248,
321,
442,
503,
767,
744,
941,
1237,
1178,
1475,
2249,
82,
178,
1141,
1179,
973,
2250,
1302,
2251,
297,
2252,
2253,
570,
2254,
2255,
2256,
18,
450,
206,
2257,
290,
292,
1142,
2258,
511,
162,
99,
346,
164,
735,
2259,
1476,
1477,
4,
554,
343,
798,
1099,
2260,
1100,
2261,
43,
171,
1303,
139,
215,
2262,
2263,
717,
775,
2264,
1033,
322,
216,
2265,
831,
2266,
149,
2267,
1304,
2268,
2269,
702,
1238,
135,
845,
347,
309,
2270,
484,
2271,
878,
655,
238,
1006,
1478,
2272,
67,
2273,
295,
2274,
2275,
461,
2276,
478,
942,
412,
2277,
1034,
2278,
2279,
2280,
265,
2281,
541,
2282,
2283,
2284,
2285,
2286,
70,
852,
1071,
2287,
2288,
2289,
2290,
21,
56,
509,
117,
432,
2291,
2292,
331,
980,
552,
1101,
148,
284,
105,
393,
1180,
1239,
755,
2293,
187,
2294,
1046,
1479,
2295,
340,
2296,
63,
1047,
230,
2297,
2298,
1305,
763,
1306,
101,
800,
808,
494,
2299,
2300,
2301,
903,
2302,
37,
1072,
14,
5,
2303,
79,
675,
2304,
312,
2305,
2306,
2307,
2308,
2309,
1480,
6,
1307,
2310,
2311,
2312,
1,
470,
35,
24,
229,
2313,
695,
210,
86,
778,
15,
784,
592,
779,
32,
77,
855,
964,
2314,
259,
2315,
501,
380,
2316,
2317,
83,
981,
153,
689,
1308,
1481,
1482,
1483,
2318,
2319,
716,
1484,
2320,
2321,
2322,
2323,
2324,
2325,
1485,
2326,
2327,
128,
57,
68,
261,
1048,
211,
170,
1240,
31,
2328,
51,
435,
742,
2329,
2330,
2331,
635,
2332,
264,
456,
2333,
2334,
2335,
425,
2336,
1486,
143,
507,
263,
943,
2337,
363,
920,
1487,
256,
1488,
1102,
243,
601,
1489,
2338,
2339,
2340,
2341,
2342,
2343,
2344,
861,
2345,
2346,
2347,
2348,
2349,
2350,
395,
2351,
1490,
1491,
62,
535,
166,
225,
2352,
2353,
668,
419,
1241,
138,
604,
928,
2354,
1181,
2355,
1492,
1493,
2356,
2357,
2358,
1143,
2359,
696,
2360,
387,
307,
1309,
682,
476,
2361,
2362,
332,
12,
222,
156,
2363,
232,
2364,
641,
276,
656,
517,
1494,
1495,
1035,
416,
736,
1496,
2365,
1017,
586,
2366,
2367,
2368,
1497,
2369,
242,
2370,
2371,
2372,
1498,
2373,
965,
713,
2374,
2375,
2376,
2377,
740,
982,
1499,
944,
1500,
1007,
2378,
2379,
1310,
1501,
2380,
2381,
2382,
785,
329,
2383,
2384,
1502,
2385,
2386,
2387,
932,
2388,
1503,
2389,
2390,
2391,
2392,
1242,
2393,
2394,
2395,
2396,
2397,
994,
950,
2398,
2399,
2400,
2401,
1504,
1311,
2402,
2403,
2404,
2405,
1049,
749,
2406,
2407,
853,
718,
1144,
1312,
2408,
1182,
1505,
2409,
2410,
255,
516,
479,
564,
550,
214,
1506,
1507,
1313,
413,
239,
444,
339,
1145,
1036,
1508,
1509,
1314,
1037,
1510,
1315,
2411,
1511,
2412,
2413,
2414,
176,
703,
497,
624,
593,
921,
302,
2415,
341,
165,
1103,
1512,
2416,
1513,
2417,
2418,
2419,
376,
2420,
700,
2421,
2422,
2423,
258,
768,
1316,
2424,
1183,
2425,
995,
608,
2426,
2427,
2428,
2429,
221,
2430,
2431,
2432,
2433,
2434,
2435,
2436,
2437,
195,
323,
726,
188,
897,
983,
1317,
377,
644,
1050,
879,
2438,
452,
2439,
2440,
2441,
2442,
2443,
2444,
914,
2445,
2446,
2447,
2448,
915,
489,
2449,
1514,
1184,
2450,
2451,
515,
64,
427,
495,
2452,
583,
2453,
483,
485,
1038,
562,
213,
1515,
748,
666,
2454,
2455,
2456,
2457,
334,
2458,
780,
996,
1008,
705,
1243,
2459,
2460,
2461,
2462,
2463,
114,
2464,
493,
1146,
366,
163,
1516,
961,
1104,
2465,
291,
2466,
1318,
1105,
2467,
1517,
365,
2468,
355,
951,
1244,
2469,
1319,
2470,
631,
2471,
2472,
218,
1320,
364,
320,
756,
1518,
1519,
1321,
1520,
1322,
2473,
2474,
2475,
2476,
997,
2477,
2478,
2479,
2480,
665,
1185,
2481,
916,
1521,
2482,
2483,
2484,
584,
684,
2485,
2486,
797,
2487,
1051,
1186,
2488,
2489,
2490,
1522,
2491,
2492,
370,
2493,
1039,
1187,
65,
2494,
434,
205,
463,
1188,
2495,
125,
812,
391,
402,
826,
699,
286,
398,
155,
781,
771,
585,
2496,
590,
505,
1073,
2497,
599,
244,
219,
917,
1018,
952,
646,
1523,
2498,
1323,
2499,
2500,
49,
984,
354,
741,
2501,
625,
2502,
1324,
2503,
1019,
190,
357,
757,
491,
95,
782,
868,
2504,
2505,
2506,
2507,
2508,
2509,
134,
1524,
1074,
422,
1525,
898,
2510,
161,
2511,
2512,
2513,
2514,
769,
2515,
1526,
2516,
2517,
411,
1325,
2518,
472,
1527,
2519,
2520,
2521,
2522,
2523,
2524,
985,
2525,
2526,
2527,
2528,
2529,
2530,
764,
2531,
1245,
2532,
2533,
25,
204,
311,
2534,
496,
2535,
1052,
2536,
2537,
2538,
2539,
2540,
2541,
2542,
199,
704,
504,
468,
758,
657,
1528,
196,
44,
839,
1246,
272,
750,
2543,
765,
862,
2544,
2545,
1326,
2546,
132,
615,
933,
2547,
732,
2548,
2549,
2550,
1189,
1529,
2551,
283,
1247,
1053,
607,
929,
2552,
2553,
2554,
930,
183,
872,
616,
1040,
1147,
2555,
1148,
1020,
441,
249,
1075,
2556,
2557,
2558,
466,
743,
2559,
2560,
2561,
92,
514,
426,
420,
526,
2562,
2563,
2564,
2565,
2566,
2567,
2568,
185,
2569,
2570,
2571,
2572,
776,
1530,
658,
2573,
362,
2574,
361,
922,
1076,
793,
2575,
2576,
2577,
2578,
2579,
2580,
1531,
251,
2581,
2582,
2583,
2584,
1532,
54,
612,
237,
1327,
2585,
2586,
275,
408,
647,
111,
2587,
1533,
1106,
465,
3,
458,
9,
38,
2588,
107,
110,
890,
209,
26,
737,
498,
2589,
1534,
2590,
431,
202,
88,
1535,
356,
287,
1107,
660,
1149,
2591,
381,
1536,
986,
1150,
445,
1248,
1151,
974,
2592,
2593,
846,
2594,
446,
953,
184,
1249,
1250,
727,
2595,
923,
193,
883,
2596,
2597,
2598,
102,
324,
539,
817,
2599,
421,
1041,
2600,
832,
2601,
94,
175,
197,
406,
2602,
459,
2603,
2604,
2605,
2606,
2607,
330,
555,
2608,
2609,
2610,
706,
1108,
389,
2611,
2612,
2613,
2614,
233,
2615,
833,
558,
931,
954,
1251,
2616,
2617,
1537,
546,
2618,
2619,
1009,
2620,
2621,
2622,
1538,
690,
1328,
2623,
955,
2624,
1539,
2625,
2626,
772,
2627,
2628,
2629,
2630,
2631,
924,
648,
863,
603,
2632,
2633,
934,
1540,
864,
865,
2634,
642,
1042,
670,
1190,
2635,
2636,
2637,
2638,
168,
2639,
652,
873,
542,
1054,
1541,
2640,
2641,
2642,
2643,
2644,
2645,
2646,
2647,
2648,
2649,
2650,
2651,
2652,
2653,
2654,
2655,
2656,
2657,
2658,
2659,
2660,
2661,
2662,
2663,
2664,
2665,
2666,
2667,
2668,
2669,
2670,
2671,
2672,
2673,
2674,
2675,
2676,
2677,
2678,
2679,
2680,
2681,
2682,
2683,
2684,
2685,
2686,
2687,
2688,
2689,
2690,
2691,
2692,
2693,
2694,
2695,
2696,
2697,
2698,
2699,
1542,
880,
2700,
2701,
2702,
2703,
2704,
2705,
2706,
2707,
2708,
2709,
2710,
2711,
2712,
2713,
2714,
2715,
2716,
2717,
2718,
2719,
2720,
2721,
2722,
2723,
2724,
2725,
1543,
2726,
2727,
2728,
2729,
2730,
2731,
2732,
1544,
2733,
2734,
2735,
2736,
2737,
2738,
2739,
2740,
2741,
2742,
2743,
2744,
2745,
2746,
2747,
2748,
2749,
2750,
2751,
2752,
2753,
2754,
1545,
2755,
2756,
2757,
2758,
2759,
2760,
2761,
2762,
2763,
2764,
2765,
2766,
1546,
2767,
1547,
2768,
2769,
2770,
2771,
2772,
2773,
2774,
2775,
2776,
2777,
2778,
2779,
2780,
2781,
2782,
2783,
2784,
2785,
2786,
1548,
2787,
2788,
2789,
1109,
2790,
2791,
2792,
2793,
2794,
2795,
2796,
2797,
2798,
2799,
2800,
2801,
2802,
2803,
2804,
2805,
2806,
2807,
2808,
2809,
2810,
2811,
2812,
1329,
2813,
2814,
2815,
2816,
2817,
2818,
2819,
2820,
2821,
2822,
2823,
2824,
2825,
2826,
2827,
2828,
2829,
2830,
2831,
2832,
2833,
2834,
2835,
2836,
2837,
2838,
2839,
2840,
2841,
2842,
2843,
2844,
2845,
2846,
2847,
2848,
2849,
2850,
2851,
2852,
2853,
2854,
2855,
2856,
1549,
2857,
2858,
2859,
2860,
1550,
2861,
2862,
1551,
2863,
2864,
2865,
2866,
2867,
2868,
2869,
2870,
2871,
2872,
2873,
2874,
1110,
1330,
2875,
2876,
2877,
2878,
2879,
2880,
2881,
2882,
2883,
2884,
2885,
2886,
2887,
2888,
2889,
2890,
2891,
2892,
2893,
2894,
2895,
2896,
2897,
2898,
2899,
2900,
2901,
2902,
2903,
2904,
2905,
2906,
2907,
2908,
2909,
2910,
2911,
2912,
2913,
2914,
2915,
2916,
2917,
2918,
2919,
2920,
2921,
2922,
2923,
2924,
2925,
2926,
2927,
2928,
2929,
2930,
1331,
2931,
2932,
2933,
2934,
2935,
2936,
2937,
2938,
2939,
2940,
2941,
2942,
2943,
1552,
2944,
2945,
2946,
2947,
2948,
2949,
2950,
2951,
2952,
2953,
2954,
2955,
2956,
2957,
2958,
2959,
2960,
2961,
2962,
2963,
2964,
1252,
2965,
2966,
2967,
2968,
2969,
2970,
2971,
2972,
2973,
2974,
2975,
2976,
2977,
2978,
2979,
2980,
2981,
2982,
2983,
2984,
2985,
2986,
2987,
2988,
2989,
2990,
2991,
2992,
2993,
2994,
2995,
2996,
2997,
2998,
2999,
3e3,
3001,
3002,
3003,
3004,
3005,
3006,
3007,
3008,
3009,
3010,
3011,
3012,
1553,
3013,
3014,
3015,
3016,
3017,
1554,
3018,
1332,
3019,
3020,
3021,
3022,
3023,
3024,
3025,
3026,
3027,
3028,
3029,
3030,
3031,
3032,
3033,
3034,
3035,
3036,
3037,
3038,
3039,
3040,
3041,
3042,
3043,
3044,
3045,
3046,
3047,
3048,
3049,
3050,
1555,
3051,
3052,
3053,
1556,
1557,
3054,
3055,
3056,
3057,
3058,
3059,
3060,
3061,
3062,
3063,
3064,
3065,
3066,
3067,
1558,
3068,
3069,
3070,
3071,
3072,
3073,
3074,
3075,
3076,
1559,
3077,
3078,
3079,
3080,
3081,
3082,
3083,
1253,
3084,
3085,
3086,
3087,
3088,
3089,
3090,
3091,
3092,
3093,
3094,
3095,
3096,
3097,
3098,
3099,
3100,
3101,
3102,
3103,
3104,
3105,
3106,
3107,
3108,
1152,
3109,
3110,
3111,
3112,
3113,
1560,
3114,
3115,
3116,
3117,
1111,
3118,
3119,
3120,
3121,
3122,
3123,
3124,
3125,
3126,
3127,
3128,
3129,
3130,
3131,
3132,
3133,
3134,
3135,
3136,
3137,
3138,
3139,
3140,
3141,
3142,
3143,
3144,
3145,
3146,
3147,
3148,
3149,
3150,
3151,
3152,
3153,
3154,
3155,
3156,
3157,
3158,
3159,
3160,
3161,
3162,
3163,
3164,
3165,
3166,
3167,
3168,
3169,
3170,
3171,
3172,
3173,
3174,
3175,
3176,
1333,
3177,
3178,
3179,
3180,
3181,
3182,
3183,
3184,
3185,
3186,
3187,
3188,
3189,
1561,
3190,
3191,
1334,
3192,
3193,
3194,
3195,
3196,
3197,
3198,
3199,
3200,
3201,
3202,
3203,
3204,
3205,
3206,
3207,
3208,
3209,
3210,
3211,
3212,
3213,
3214,
3215,
3216,
3217,
3218,
3219,
3220,
3221,
3222,
3223,
3224,
3225,
3226,
3227,
3228,
3229,
3230,
3231,
3232,
3233,
3234,
1562,
3235,
3236,
3237,
3238,
3239,
3240,
3241,
3242,
3243,
3244,
3245,
3246,
3247,
3248,
3249,
3250,
3251,
3252,
3253,
3254,
3255,
3256,
3257,
3258,
3259,
3260,
3261,
3262,
3263,
3264,
3265,
3266,
3267,
3268,
3269,
3270,
3271,
3272,
3273,
3274,
3275,
3276,
3277,
1563,
3278,
3279,
3280,
3281,
3282,
3283,
3284,
3285,
3286,
3287,
3288,
3289,
3290,
3291,
3292,
3293,
3294,
3295,
3296,
3297,
3298,
3299,
3300,
3301,
3302,
3303,
3304,
3305,
3306,
3307,
3308,
3309,
3310,
3311,
3312,
3313,
3314,
3315,
3316,
3317,
3318,
3319,
3320,
3321,
3322,
3323,
3324,
3325,
3326,
3327,
3328,
3329,
3330,
3331,
3332,
3333,
3334,
3335,
3336,
3337,
3338,
3339,
3340,
3341,
3342,
3343,
3344,
3345,
3346,
3347,
3348,
3349,
3350,
3351,
3352,
3353,
3354,
3355,
3356,
3357,
3358,
3359,
3360,
3361,
3362,
3363,
3364,
1335,
3365,
3366,
3367,
3368,
3369,
3370,
3371,
3372,
3373,
3374,
3375,
3376,
3377,
3378,
3379,
3380,
3381,
3382,
3383,
3384,
3385,
3386,
3387,
1336,
3388,
3389,
3390,
3391,
3392,
3393,
3394,
3395,
3396,
3397,
3398,
3399,
3400,
3401,
3402,
3403,
3404,
3405,
3406,
3407,
3408,
3409,
3410,
3411,
3412,
3413,
3414,
1337,
3415,
3416,
3417,
3418,
3419,
1338,
3420,
3421,
3422,
1564,
1565,
3423,
3424,
3425,
3426,
3427,
3428,
3429,
3430,
3431,
1254,
3432,
3433,
3434,
1339,
3435,
3436,
3437,
3438,
3439,
1566,
3440,
3441,
3442,
3443,
3444,
3445,
3446,
3447,
3448,
3449,
3450,
3451,
3452,
3453,
3454,
1255,
3455,
3456,
3457,
3458,
3459,
1567,
1191,
3460,
1568,
1569,
3461,
3462,
3463,
1570,
3464,
3465,
3466,
3467,
3468,
1571,
3469,
3470,
3471,
3472,
3473,
1572,
3474,
3475,
3476,
3477,
3478,
3479,
3480,
3481,
3482,
3483,
3484,
3485,
3486,
1340,
3487,
3488,
3489,
3490,
3491,
3492,
1021,
3493,
3494,
3495,
3496,
3497,
3498,
1573,
3499,
1341,
3500,
3501,
3502,
3503,
3504,
3505,
3506,
3507,
3508,
3509,
3510,
3511,
1342,
3512,
3513,
3514,
3515,
3516,
1574,
1343,
3517,
3518,
3519,
1575,
3520,
1576,
3521,
3522,
3523,
3524,
3525,
3526,
3527,
3528,
3529,
3530,
3531,
3532,
3533,
3534,
3535,
3536,
3537,
3538,
3539,
3540,
3541,
3542,
3543,
3544,
3545,
3546,
3547,
3548,
3549,
3550,
3551,
3552,
3553,
3554,
3555,
3556,
3557,
3558,
3559,
3560,
3561,
3562,
3563,
3564,
3565,
3566,
3567,
3568,
3569,
3570,
3571,
3572,
3573,
3574,
3575,
3576,
3577,
3578,
3579,
3580,
1577,
3581,
3582,
1578,
3583,
3584,
3585,
3586,
3587,
3588,
3589,
3590,
3591,
3592,
3593,
3594,
3595,
3596,
3597,
3598,
3599,
3600,
3601,
3602,
3603,
3604,
1579,
3605,
3606,
3607,
3608,
3609,
3610,
3611,
3612,
3613,
3614,
3615,
3616,
3617,
3618,
3619,
3620,
3621,
3622,
3623,
3624,
3625,
3626,
3627,
3628,
3629,
1580,
3630,
3631,
1581,
3632,
3633,
3634,
3635,
3636,
3637,
3638,
3639,
3640,
3641,
3642,
3643,
3644,
3645,
3646,
3647,
3648,
3649,
3650,
3651,
3652,
3653,
3654,
3655,
3656,
1582,
3657,
3658,
3659,
3660,
3661,
3662,
3663,
3664,
3665,
3666,
3667,
3668,
3669,
3670,
3671,
3672,
3673,
3674,
3675,
3676,
3677,
3678,
3679,
3680,
3681,
3682,
3683,
3684,
3685,
3686,
3687,
3688,
3689,
3690,
3691,
3692,
3693,
3694,
3695,
3696,
3697,
3698,
3699,
3700,
1192,
3701,
3702,
3703,
3704,
1256,
3705,
3706,
3707,
3708,
1583,
1257,
3709,
3710,
3711,
3712,
3713,
3714,
3715,
3716,
1584,
3717,
3718,
3719,
3720,
3721,
3722,
3723,
3724,
3725,
3726,
3727,
3728,
3729,
3730,
3731,
3732,
3733,
3734,
3735,
3736,
3737,
3738,
3739,
3740,
3741,
3742,
3743,
3744,
3745,
1344,
3746,
3747,
3748,
3749,
3750,
3751,
3752,
3753,
3754,
3755,
3756,
1585,
3757,
3758,
3759,
3760,
3761,
3762,
3763,
3764,
3765,
3766,
1586,
3767,
3768,
3769,
3770,
3771,
3772,
3773,
3774,
3775,
3776,
3777,
3778,
1345,
3779,
3780,
3781,
3782,
3783,
3784,
3785,
3786,
3787,
3788,
3789,
3790,
3791,
3792,
3793,
3794,
3795,
1346,
1587,
3796,
3797,
1588,
3798,
3799,
3800,
3801,
3802,
3803,
3804,
3805,
3806,
1347,
3807,
3808,
3809,
3810,
3811,
1589,
3812,
3813,
3814,
3815,
3816,
3817,
3818,
3819,
3820,
3821,
1590,
3822,
3823,
1591,
1348,
3824,
3825,
3826,
3827,
3828,
3829,
3830,
1592,
3831,
3832,
1593,
3833,
3834,
3835,
3836,
3837,
3838,
3839,
3840,
3841,
3842,
3843,
3844,
1349,
3845,
3846,
3847,
3848,
3849,
3850,
3851,
3852,
3853,
3854,
3855,
3856,
3857,
3858,
1594,
3859,
3860,
3861,
3862,
3863,
3864,
3865,
3866,
3867,
3868,
3869,
1595,
3870,
3871,
3872,
3873,
1596,
3874,
3875,
3876,
3877,
3878,
3879,
3880,
3881,
3882,
3883,
3884,
3885,
3886,
1597,
3887,
3888,
3889,
3890,
3891,
3892,
3893,
3894,
3895,
1598,
3896,
3897,
3898,
1599,
1600,
3899,
1350,
3900,
1351,
3901,
3902,
1352,
3903,
3904,
3905,
3906,
3907,
3908,
3909,
3910,
3911,
3912,
3913,
3914,
3915,
3916,
3917,
3918,
3919,
3920,
3921,
3922,
3923,
3924,
1258,
3925,
3926,
3927,
3928,
3929,
3930,
3931,
1193,
3932,
1601,
3933,
3934,
3935,
3936,
3937,
3938,
3939,
3940,
3941,
3942,
3943,
1602,
3944,
3945,
3946,
3947,
3948,
1603,
3949,
3950,
3951,
3952,
3953,
3954,
3955,
3956,
3957,
3958,
3959,
3960,
3961,
3962,
3963,
3964,
3965,
1604,
3966,
3967,
3968,
3969,
3970,
3971,
3972,
3973,
3974,
3975,
3976,
3977,
1353,
3978,
3979,
3980,
3981,
3982,
3983,
3984,
3985,
3986,
3987,
3988,
3989,
3990,
3991,
1354,
3992,
3993,
3994,
3995,
3996,
3997,
3998,
3999,
4e3,
4001,
4002,
4003,
4004,
4005,
4006,
4007,
4008,
4009,
4010,
4011,
4012,
4013,
4014,
4015,
4016,
4017,
4018,
4019,
4020,
4021,
4022,
4023,
1355,
4024,
4025,
4026,
4027,
4028,
4029,
4030,
4031,
4032,
4033,
4034,
4035,
4036,
4037,
4038,
4039,
4040,
1605,
4041,
4042,
4043,
4044,
4045,
4046,
4047,
4048,
4049,
4050,
4051,
4052,
4053,
4054,
4055,
4056,
4057,
4058,
4059,
4060,
1606,
4061,
4062,
4063,
4064,
1607,
4065,
4066,
4067,
4068,
4069,
4070,
4071,
4072,
4073,
4074,
4075,
4076,
1194,
4077,
4078,
1608,
4079,
4080,
4081,
4082,
4083,
4084,
4085,
4086,
4087,
1609,
4088,
4089,
4090,
4091,
4092,
4093,
4094,
4095,
4096,
4097,
4098,
4099,
4100,
4101,
4102,
4103,
4104,
4105,
4106,
4107,
4108,
1259,
4109,
4110,
4111,
4112,
4113,
4114,
4115,
4116,
4117,
4118,
4119,
4120,
4121,
4122,
4123,
4124,
1195,
4125,
4126,
4127,
1610,
4128,
4129,
4130,
4131,
4132,
4133,
4134,
4135,
4136,
4137,
1356,
4138,
4139,
4140,
4141,
4142,
4143,
4144,
1611,
4145,
4146,
4147,
4148,
4149,
4150,
4151,
4152,
4153,
4154,
4155,
4156,
4157,
4158,
4159,
4160,
4161,
4162,
4163,
4164,
4165,
4166,
4167,
4168,
4169,
4170,
4171,
4172,
4173,
4174,
4175,
4176,
4177,
4178,
4179,
4180,
4181,
4182,
4183,
4184,
4185,
4186,
4187,
4188,
4189,
4190,
4191,
4192,
4193,
4194,
4195,
4196,
4197,
4198,
4199,
4200,
4201,
4202,
4203,
4204,
4205,
4206,
4207,
4208,
4209,
4210,
4211,
4212,
4213,
4214,
4215,
4216,
4217,
4218,
4219,
1612,
4220,
4221,
4222,
4223,
4224,
4225,
4226,
4227,
1357,
4228,
1613,
4229,
4230,
4231,
4232,
4233,
4234,
4235,
4236,
4237,
4238,
4239,
4240,
4241,
4242,
4243,
1614,
4244,
4245,
4246,
4247,
4248,
4249,
4250,
4251,
4252,
4253,
4254,
4255,
4256,
4257,
4258,
4259,
4260,
4261,
4262,
4263,
4264,
4265,
4266,
4267,
4268,
4269,
4270,
1196,
1358,
4271,
4272,
4273,
4274,
4275,
4276,
4277,
4278,
4279,
4280,
4281,
4282,
4283,
4284,
4285,
4286,
4287,
1615,
4288,
4289,
4290,
4291,
4292,
4293,
4294,
4295,
4296,
4297,
4298,
4299,
4300,
4301,
4302,
4303,
4304,
4305,
4306,
4307,
4308,
4309,
4310,
4311,
4312,
4313,
4314,
4315,
4316,
4317,
4318,
4319,
4320,
4321,
4322,
4323,
4324,
4325,
4326,
4327,
4328,
4329,
4330,
4331,
4332,
4333,
4334,
1616,
4335,
4336,
4337,
4338,
4339,
4340,
4341,
4342,
4343,
4344,
4345,
4346,
4347,
4348,
4349,
4350,
4351,
4352,
4353,
4354,
4355,
4356,
4357,
4358,
4359,
4360,
1617,
4361,
4362,
4363,
4364,
4365,
1618,
4366,
4367,
4368,
4369,
4370,
4371,
4372,
4373,
4374,
4375,
4376,
4377,
4378,
4379,
4380,
4381,
4382,
4383,
4384,
4385,
4386,
4387,
4388,
4389,
4390,
4391,
4392,
4393,
4394,
4395,
4396,
4397,
4398,
4399,
4400,
4401,
4402,
4403,
4404,
4405,
4406,
4407,
4408,
4409,
4410,
4411,
4412,
4413,
4414,
4415,
4416,
1619,
4417,
4418,
4419,
4420,
4421,
4422,
4423,
4424,
4425,
1112,
4426,
4427,
4428,
4429,
4430,
1620,
4431,
4432,
4433,
4434,
4435,
4436,
4437,
4438,
4439,
4440,
4441,
4442,
1260,
1261,
4443,
4444,
4445,
4446,
4447,
4448,
4449,
4450,
4451,
4452,
4453,
4454,
4455,
1359,
4456,
4457,
4458,
4459,
4460,
4461,
4462,
4463,
4464,
4465,
1621,
4466,
4467,
4468,
4469,
4470,
4471,
4472,
4473,
4474,
4475,
4476,
4477,
4478,
4479,
4480,
4481,
4482,
4483,
4484,
4485,
4486,
4487,
4488,
4489,
1055,
4490,
4491,
4492,
4493,
4494,
4495,
4496,
4497,
4498,
4499,
4500,
4501,
4502,
4503,
4504,
4505,
4506,
4507,
4508,
4509,
4510,
4511,
4512,
4513,
4514,
4515,
4516,
4517,
4518,
1622,
4519,
4520,
4521,
1623,
4522,
4523,
4524,
4525,
4526,
4527,
4528,
4529,
4530,
4531,
4532,
4533,
4534,
4535,
1360,
4536,
4537,
4538,
4539,
4540,
4541,
4542,
4543,
975,
4544,
4545,
4546,
4547,
4548,
4549,
4550,
4551,
4552,
4553,
4554,
4555,
4556,
4557,
4558,
4559,
4560,
4561,
4562,
4563,
4564,
4565,
4566,
4567,
4568,
4569,
4570,
4571,
1624,
4572,
4573,
4574,
4575,
4576,
1625,
4577,
4578,
4579,
4580,
4581,
4582,
4583,
4584,
1626,
4585,
4586,
4587,
4588,
4589,
4590,
4591,
4592,
4593,
4594,
4595,
1627,
4596,
4597,
4598,
4599,
4600,
4601,
4602,
4603,
4604,
4605,
4606,
4607,
4608,
4609,
4610,
4611,
4612,
4613,
4614,
4615,
1628,
4616,
4617,
4618,
4619,
4620,
4621,
4622,
4623,
4624,
4625,
4626,
4627,
4628,
4629,
4630,
4631,
4632,
4633,
4634,
4635,
4636,
4637,
4638,
4639,
4640,
4641,
4642,
4643,
4644,
4645,
4646,
4647,
4648,
4649,
1361,
4650,
4651,
4652,
4653,
4654,
4655,
4656,
4657,
4658,
4659,
4660,
4661,
1362,
4662,
4663,
4664,
4665,
4666,
4667,
4668,
4669,
4670,
4671,
4672,
4673,
4674,
4675,
4676,
4677,
4678,
4679,
4680,
4681,
4682,
1629,
4683,
4684,
4685,
4686,
4687,
1630,
4688,
4689,
4690,
4691,
1153,
4692,
4693,
4694,
1113,
4695,
4696,
4697,
4698,
4699,
4700,
4701,
4702,
4703,
4704,
4705,
4706,
4707,
4708,
4709,
4710,
4711,
1197,
4712,
4713,
4714,
4715,
4716,
4717,
4718,
4719,
4720,
4721,
4722,
4723,
4724,
4725,
4726,
4727,
4728,
4729,
4730,
4731,
4732,
4733,
4734,
4735,
1631,
4736,
1632,
4737,
4738,
4739,
4740,
4741,
4742,
4743,
4744,
1633,
4745,
4746,
4747,
4748,
4749,
1262,
4750,
4751,
4752,
4753,
4754,
1363,
4755,
4756,
4757,
4758,
4759,
4760,
4761,
4762,
4763,
4764,
4765,
4766,
4767,
4768,
1634,
4769,
4770,
4771,
4772,
4773,
4774,
4775,
4776,
4777,
4778,
1635,
4779,
4780,
4781,
4782,
4783,
4784,
4785,
4786,
4787,
4788,
4789,
1636,
4790,
4791,
4792,
4793,
4794,
4795,
4796,
4797,
4798,
4799,
4800,
4801,
4802,
4803,
4804,
4805,
4806,
1637,
4807,
4808,
4809,
1638,
4810,
4811,
4812,
4813,
4814,
4815,
4816,
4817,
4818,
1639,
4819,
4820,
4821,
4822,
4823,
4824,
4825,
4826,
4827,
4828,
4829,
4830,
4831,
4832,
4833,
1077,
4834,
4835,
4836,
4837,
4838,
4839,
4840,
4841,
4842,
4843,
4844,
4845,
4846,
4847,
4848,
4849,
4850,
4851,
4852,
4853,
4854,
4855,
4856,
4857,
4858,
4859,
4860,
4861,
4862,
4863,
4864,
4865,
4866,
4867,
4868,
4869,
4870,
4871,
4872,
4873,
4874,
4875,
4876,
4877,
4878,
4879,
4880,
4881,
4882,
4883,
1640,
4884,
4885,
1641,
4886,
4887,
4888,
4889,
4890,
4891,
4892,
4893,
4894,
4895,
4896,
4897,
4898,
4899,
4900,
4901,
4902,
4903,
4904,
4905,
4906,
4907,
4908,
4909,
4910,
4911,
1642,
4912,
4913,
4914,
1364,
4915,
4916,
4917,
4918,
4919,
4920,
4921,
4922,
4923,
4924,
4925,
4926,
4927,
4928,
4929,
4930,
4931,
1643,
4932,
4933,
4934,
4935,
4936,
4937,
4938,
4939,
4940,
4941,
4942,
4943,
4944,
4945,
4946,
4947,
4948,
4949,
4950,
4951,
4952,
4953,
4954,
4955,
4956,
4957,
4958,
4959,
4960,
4961,
4962,
4963,
4964,
4965,
4966,
4967,
4968,
4969,
4970,
4971,
4972,
4973,
4974,
4975,
4976,
4977,
4978,
4979,
4980,
1644,
4981,
4982,
4983,
4984,
1645,
4985,
4986,
1646,
4987,
4988,
4989,
4990,
4991,
4992,
4993,
4994,
4995,
4996,
4997,
4998,
4999,
5e3,
5001,
5002,
5003,
5004,
5005,
1647,
5006,
1648,
5007,
5008,
5009,
5010,
5011,
5012,
1078,
5013,
5014,
5015,
5016,
5017,
5018,
5019,
5020,
5021,
5022,
5023,
5024,
5025,
5026,
5027,
5028,
1365,
5029,
5030,
5031,
5032,
5033,
5034,
5035,
5036,
5037,
5038,
5039,
1649,
5040,
5041,
5042,
5043,
5044,
5045,
1366,
5046,
5047,
5048,
5049,
5050,
5051,
5052,
5053,
5054,
5055,
1650,
5056,
5057,
5058,
5059,
5060,
5061,
5062,
5063,
5064,
5065,
5066,
5067,
5068,
5069,
5070,
5071,
5072,
5073,
5074,
5075,
5076,
5077,
1651,
5078,
5079,
5080,
5081,
5082,
5083,
5084,
5085,
5086,
5087,
5088,
5089,
5090,
5091,
5092,
5093,
5094,
5095,
5096,
5097,
5098,
5099,
5100,
5101,
5102,
5103,
5104,
5105,
5106,
5107,
5108,
5109,
5110,
1652,
5111,
5112,
5113,
5114,
5115,
5116,
5117,
5118,
1367,
5119,
5120,
5121,
5122,
5123,
5124,
5125,
5126,
5127,
5128,
5129,
1653,
5130,
5131,
5132,
5133,
5134,
5135,
5136,
5137,
5138,
5139,
5140,
5141,
5142,
5143,
5144,
5145,
5146,
5147,
5148,
5149,
1368,
5150,
1654,
5151,
1369,
5152,
5153,
5154,
5155,
5156,
5157,
5158,
5159,
5160,
5161,
5162,
5163,
5164,
5165,
5166,
5167,
5168,
5169,
5170,
5171,
5172,
5173,
5174,
5175,
5176,
5177,
5178,
1370,
5179,
5180,
5181,
5182,
5183,
5184,
5185,
5186,
5187,
5188,
5189,
5190,
5191,
5192,
5193,
5194,
5195,
5196,
5197,
5198,
1655,
5199,
5200,
5201,
5202,
1656,
5203,
5204,
5205,
5206,
1371,
5207,
1372,
5208,
5209,
5210,
5211,
1373,
5212,
5213,
1374,
5214,
5215,
5216,
5217,
5218,
5219,
5220,
5221,
5222,
5223,
5224,
5225,
5226,
5227,
5228,
5229,
5230,
5231,
5232,
5233,
5234,
5235,
5236,
5237,
5238,
5239,
5240,
5241,
5242,
5243,
5244,
5245,
5246,
5247,
1657,
5248,
5249,
5250,
5251,
1658,
1263,
5252,
5253,
5254,
5255,
5256,
1375,
5257,
5258,
5259,
5260,
5261,
5262,
5263,
5264,
5265,
5266,
5267,
5268,
5269,
5270,
5271,
5272,
5273,
5274,
5275,
5276,
5277,
5278,
5279,
5280,
5281,
5282,
5283,
1659,
5284,
5285,
5286,
5287,
5288,
5289,
5290,
5291,
5292,
5293,
5294,
5295,
5296,
5297,
5298,
5299,
5300,
1660,
5301,
5302,
5303,
5304,
5305,
5306,
5307,
5308,
5309,
5310,
5311,
5312,
5313,
5314,
5315,
5316,
5317,
5318,
5319,
5320,
5321,
1376,
5322,
5323,
5324,
5325,
5326,
5327,
5328,
5329,
5330,
5331,
5332,
5333,
1198,
5334,
5335,
5336,
5337,
5338,
5339,
5340,
5341,
5342,
5343,
1661,
5344,
5345,
5346,
5347,
5348,
5349,
5350,
5351,
5352,
5353,
5354,
5355,
5356,
5357,
5358,
5359,
5360,
5361,
5362,
5363,
5364,
5365,
5366,
5367,
5368,
5369,
5370,
5371,
5372,
5373,
5374,
5375,
5376,
5377,
5378,
5379,
5380,
5381,
5382,
5383,
5384,
5385,
5386,
5387,
5388,
5389,
5390,
5391,
5392,
5393,
5394,
5395,
5396,
5397,
5398,
1264,
5399,
5400,
5401,
5402,
5403,
5404,
5405,
5406,
5407,
5408,
5409,
5410,
5411,
5412,
1662,
5413,
5414,
5415,
5416,
1663,
5417,
5418,
5419,
5420,
5421,
5422,
5423,
5424,
5425,
5426,
5427,
5428,
5429,
5430,
5431,
5432,
5433,
5434,
5435,
5436,
5437,
5438,
1664,
5439,
5440,
5441,
5442,
5443,
5444,
5445,
5446,
5447,
5448,
5449,
5450,
5451,
5452,
5453,
5454,
5455,
5456,
5457,
5458,
5459,
5460,
5461,
5462,
5463,
5464,
5465,
5466,
5467,
5468,
5469,
5470,
5471,
5472,
5473,
5474,
5475,
5476,
5477,
5478,
1154,
5479,
5480,
5481,
5482,
5483,
5484,
5485,
1665,
5486,
5487,
5488,
5489,
5490,
5491,
5492,
5493,
5494,
5495,
5496,
5497,
5498,
5499,
5500,
5501,
5502,
5503,
5504,
5505,
5506,
5507,
5508,
5509,
5510,
5511,
5512,
5513,
5514,
5515,
5516,
5517,
5518,
5519,
5520,
5521,
5522,
5523,
5524,
5525,
5526,
5527,
5528,
5529,
5530,
5531,
5532,
5533,
5534,
5535,
5536,
5537,
5538,
5539,
5540,
5541,
5542,
5543,
5544,
5545,
5546,
5547,
5548,
1377,
5549,
5550,
5551,
5552,
5553,
5554,
5555,
5556,
5557,
5558,
5559,
5560,
5561,
5562,
5563,
5564,
5565,
5566,
5567,
5568,
5569,
5570,
1114,
5571,
5572,
5573,
5574,
5575,
5576,
5577,
5578,
5579,
5580,
5581,
5582,
5583,
5584,
5585,
5586,
5587,
5588,
5589,
5590,
5591,
5592,
1378,
5593,
5594,
5595,
5596,
5597,
5598,
5599,
5600,
5601,
5602,
5603,
5604,
5605,
5606,
5607,
5608,
5609,
5610,
5611,
5612,
5613,
5614,
1379,
5615,
5616,
5617,
5618,
5619,
5620,
5621,
5622,
5623,
5624,
5625,
5626,
5627,
5628,
5629,
5630,
5631,
5632,
5633,
5634,
1380,
5635,
5636,
5637,
5638,
5639,
5640,
5641,
5642,
5643,
5644,
5645,
5646,
5647,
5648,
5649,
1381,
1056,
5650,
5651,
5652,
5653,
5654,
5655,
5656,
5657,
5658,
5659,
5660,
1666,
5661,
5662,
5663,
5664,
5665,
5666,
5667,
5668,
1667,
5669,
1668,
5670,
5671,
5672,
5673,
5674,
5675,
5676,
5677,
5678,
1155,
5679,
5680,
5681,
5682,
5683,
5684,
5685,
5686,
5687,
5688,
5689,
5690,
5691,
5692,
5693,
5694,
5695,
5696,
5697,
5698,
1669,
5699,
5700,
5701,
5702,
5703,
5704,
5705,
1670,
5706,
5707,
5708,
5709,
5710,
1671,
5711,
5712,
5713,
5714,
1382,
5715,
5716,
5717,
5718,
5719,
5720,
5721,
5722,
5723,
5724,
5725,
1672,
5726,
5727,
1673,
1674,
5728,
5729,
5730,
5731,
5732,
5733,
5734,
5735,
5736,
1675,
5737,
5738,
5739,
5740,
5741,
5742,
5743,
5744,
1676,
5745,
5746,
5747,
5748,
5749,
5750,
5751,
1383,
5752,
5753,
5754,
5755,
5756,
5757,
5758,
5759,
5760,
5761,
5762,
5763,
5764,
5765,
5766,
5767,
5768,
1677,
5769,
5770,
5771,
5772,
5773,
1678,
5774,
5775,
5776,
998,
5777,
5778,
5779,
5780,
5781,
5782,
5783,
5784,
5785,
1384,
5786,
5787,
5788,
5789,
5790,
5791,
5792,
5793,
5794,
5795,
5796,
5797,
5798,
5799,
5800,
1679,
5801,
5802,
5803,
1115,
1116,
5804,
5805,
5806,
5807,
5808,
5809,
5810,
5811,
5812,
5813,
5814,
5815,
5816,
5817,
5818,
5819,
5820,
5821,
5822,
5823,
5824,
5825,
5826,
5827,
5828,
5829,
5830,
5831,
5832,
5833,
5834,
5835,
5836,
5837,
5838,
5839,
5840,
5841,
5842,
5843,
5844,
5845,
5846,
5847,
5848,
5849,
5850,
5851,
5852,
5853,
5854,
5855,
1680,
5856,
5857,
5858,
5859,
5860,
5861,
5862,
5863,
5864,
1681,
5865,
5866,
5867,
1682,
5868,
5869,
5870,
5871,
5872,
5873,
5874,
5875,
5876,
5877,
5878,
5879,
1683,
5880,
1684,
5881,
5882,
5883,
5884,
1685,
5885,
5886,
5887,
5888,
5889,
5890,
5891,
5892,
5893,
5894,
5895,
5896,
5897,
5898,
5899,
5900,
5901,
5902,
5903,
5904,
5905,
5906,
5907,
1686,
5908,
5909,
5910,
5911,
5912,
5913,
5914,
5915,
5916,
5917,
5918,
5919,
5920,
5921,
5922,
5923,
5924,
5925,
5926,
5927,
5928,
5929,
5930,
5931,
5932,
5933,
5934,
5935,
1687,
5936,
5937,
5938,
5939,
5940,
5941,
5942,
5943,
5944,
5945,
5946,
5947,
5948,
5949,
5950,
5951,
5952,
1688,
1689,
5953,
1199,
5954,
5955,
5956,
5957,
5958,
5959,
5960,
5961,
1690,
5962,
5963,
5964,
5965,
5966,
5967,
5968,
5969,
5970,
5971,
5972,
5973,
5974,
5975,
5976,
5977,
5978,
5979,
5980,
5981,
1385,
5982,
1386,
5983,
5984,
5985,
5986,
5987,
5988,
5989,
5990,
5991,
5992,
5993,
5994,
5995,
5996,
5997,
5998,
5999,
6e3,
6001,
6002,
6003,
6004,
6005,
6006,
6007,
6008,
6009,
6010,
6011,
6012,
6013,
6014,
6015,
6016,
6017,
6018,
6019,
6020,
6021,
6022,
6023,
6024,
6025,
6026,
6027,
1265,
6028,
6029,
1691,
6030,
6031,
6032,
6033,
6034,
6035,
6036,
6037,
6038,
6039,
6040,
6041,
6042,
6043,
6044,
6045,
6046,
6047,
6048,
6049,
6050,
6051,
6052,
6053,
6054,
6055,
6056,
6057,
6058,
6059,
6060,
6061,
6062,
6063,
6064,
6065,
6066,
6067,
6068,
6069,
6070,
6071,
6072,
6073,
6074,
6075,
6076,
6077,
6078,
6079,
6080,
6081,
6082,
6083,
6084,
1692,
6085,
6086,
6087,
6088,
6089,
6090,
6091,
6092,
6093,
6094,
6095,
6096,
6097,
6098,
6099,
6100,
6101,
6102,
6103,
6104,
6105,
6106,
6107,
6108,
6109,
6110,
6111,
6112,
6113,
6114,
6115,
6116,
6117,
6118,
6119,
6120,
6121,
6122,
6123,
6124,
6125,
6126,
6127,
6128,
6129,
6130,
6131,
1693,
6132,
6133,
6134,
6135,
6136,
1694,
6137,
6138,
6139,
6140,
6141,
1695,
6142,
6143,
6144,
6145,
6146,
6147,
6148,
6149,
6150,
6151,
6152,
6153,
6154,
6155,
6156,
6157,
6158,
6159,
6160,
6161,
6162,
6163,
6164,
6165,
6166,
6167,
6168,
6169,
6170,
6171,
6172,
6173,
6174,
6175,
6176,
6177,
6178,
6179,
6180,
6181,
6182,
6183,
6184,
6185,
1696,
6186,
6187,
6188,
6189,
6190,
6191,
6192,
6193,
6194,
6195,
6196,
6197,
6198,
6199,
6200,
6201,
6202,
6203,
6204,
6205,
6206,
6207,
6208,
6209,
6210,
6211,
6212,
6213,
6214,
6215,
6216,
6217,
6218,
6219,
1697,
6220,
6221,
6222,
6223,
6224,
6225,
6226,
6227,
6228,
6229,
6230,
6231,
6232,
6233,
6234,
6235,
6236,
6237,
6238,
6239,
6240,
6241,
6242,
6243,
6244,
6245,
6246,
6247,
6248,
6249,
6250,
6251,
6252,
6253,
1698,
6254,
6255,
6256,
6257,
6258,
6259,
6260,
6261,
6262,
6263,
1200,
6264,
6265,
6266,
6267,
6268,
6269,
6270,
6271,
6272,
6273,
6274,
6275,
6276,
6277,
6278,
6279,
6280,
6281,
6282,
6283,
6284,
6285,
6286,
6287,
6288,
6289,
6290,
6291,
6292,
6293,
6294,
6295,
6296,
6297,
6298,
6299,
6300,
6301,
6302,
1699,
6303,
6304,
1700,
6305,
6306,
6307,
6308,
6309,
6310,
6311,
6312,
6313,
6314,
6315,
6316,
6317,
6318,
6319,
6320,
6321,
6322,
6323,
6324,
6325,
6326,
6327,
6328,
6329,
6330,
6331,
6332,
6333,
6334,
6335,
6336,
6337,
6338,
6339,
1701,
6340,
6341,
6342,
6343,
6344,
1387,
6345,
6346,
6347,
6348,
6349,
6350,
6351,
6352,
6353,
6354,
6355,
6356,
6357,
6358,
6359,
6360,
6361,
6362,
6363,
6364,
6365,
6366,
6367,
6368,
6369,
6370,
6371,
6372,
6373,
6374,
6375,
6376,
6377,
6378,
6379,
6380,
6381,
6382,
6383,
6384,
6385,
6386,
6387,
6388,
6389,
6390,
6391,
6392,
6393,
6394,
6395,
6396,
6397,
6398,
6399,
6400,
6401,
6402,
6403,
6404,
6405,
6406,
6407,
6408,
6409,
6410,
6411,
6412,
6413,
1702,
6414,
6415,
6416,
6417,
6418,
6419,
6420,
6421,
6422,
1703,
6423,
6424,
6425,
6426,
6427,
6428,
6429,
6430,
6431,
6432,
6433,
6434,
6435,
6436,
6437,
6438,
1704,
6439,
6440,
6441,
6442,
6443,
6444,
6445,
6446,
6447,
6448,
6449,
6450,
6451,
6452,
6453,
6454,
6455,
6456,
6457,
6458,
6459,
6460,
6461,
6462,
6463,
6464,
6465,
6466,
6467,
6468,
6469,
6470,
6471,
6472,
6473,
6474,
6475,
6476,
6477,
6478,
6479,
6480,
6481,
6482,
6483,
6484,
6485,
6486,
6487,
6488,
6489,
6490,
6491,
6492,
6493,
6494,
6495,
6496,
6497,
6498,
6499,
6500,
6501,
6502,
6503,
1266,
6504,
6505,
6506,
6507,
6508,
6509,
6510,
6511,
6512,
6513,
6514,
6515,
6516,
6517,
6518,
6519,
6520,
6521,
6522,
6523,
6524,
6525,
6526,
6527,
6528,
6529,
6530,
6531,
6532,
6533,
6534,
6535,
6536,
6537,
6538,
6539,
6540,
6541,
6542,
6543,
6544,
6545,
6546,
6547,
6548,
6549,
6550,
6551,
1705,
1706,
6552,
6553,
6554,
6555,
6556,
6557,
6558,
6559,
6560,
6561,
6562,
6563,
6564,
6565,
6566,
6567,
6568,
6569,
6570,
6571,
6572,
6573,
6574,
6575,
6576,
6577,
6578,
6579,
6580,
6581,
6582,
6583,
6584,
6585,
6586,
6587,
6588,
6589,
6590,
6591,
6592,
6593,
6594,
6595,
6596,
6597,
6598,
6599,
6600,
6601,
6602,
6603,
6604,
6605,
6606,
6607,
6608,
6609,
6610,
6611,
6612,
6613,
6614,
6615,
6616,
6617,
6618,
6619,
6620,
6621,
6622,
6623,
6624,
6625,
6626,
6627,
6628,
6629,
6630,
6631,
6632,
6633,
6634,
6635,
6636,
6637,
1388,
6638,
6639,
6640,
6641,
6642,
6643,
6644,
1707,
6645,
6646,
6647,
6648,
6649,
6650,
6651,
6652,
6653,
6654,
6655,
6656,
6657,
6658,
6659,
6660,
6661,
6662,
6663,
1708,
6664,
6665,
6666,
6667,
6668,
6669,
6670,
6671,
6672,
6673,
6674,
1201,
6675,
6676,
6677,
6678,
6679,
6680,
6681,
6682,
6683,
6684,
6685,
6686,
6687,
6688,
6689,
6690,
6691,
6692,
6693,
6694,
6695,
6696,
6697,
6698,
6699,
6700,
6701,
6702,
6703,
6704,
6705,
6706,
6707,
6708,
6709,
6710,
6711,
6712,
6713,
6714,
6715,
6716,
6717,
6718,
6719,
6720,
6721,
6722,
6723,
6724,
6725,
1389,
6726,
6727,
6728,
6729,
6730,
6731,
6732,
6733,
6734,
6735,
6736,
1390,
1709,
6737,
6738,
6739,
6740,
6741,
6742,
1710,
6743,
6744,
6745,
6746,
1391,
6747,
6748,
6749,
6750,
6751,
6752,
6753,
6754,
6755,
6756,
6757,
1392,
6758,
6759,
6760,
6761,
6762,
6763,
6764,
6765,
6766,
6767,
6768,
6769,
6770,
6771,
6772,
6773,
6774,
6775,
6776,
6777,
6778,
6779,
6780,
1202,
6781,
6782,
6783,
6784,
6785,
6786,
6787,
6788,
6789,
6790,
6791,
6792,
6793,
6794,
6795,
6796,
6797,
6798,
6799,
6800,
6801,
6802,
6803,
6804,
6805,
6806,
6807,
6808,
6809,
1711,
6810,
6811,
6812,
6813,
6814,
6815,
6816,
6817,
6818,
6819,
6820,
6821,
6822,
6823,
6824,
6825,
6826,
6827,
6828,
6829,
6830,
6831,
6832,
6833,
6834,
6835,
6836,
1393,
6837,
6838,
6839,
6840,
6841,
6842,
6843,
6844,
6845,
6846,
6847,
6848,
6849,
6850,
6851,
6852,
6853,
6854,
6855,
6856,
6857,
6858,
6859,
6860,
6861,
6862,
6863,
6864,
6865,
6866,
6867,
6868,
6869,
6870,
6871,
6872,
6873,
6874,
6875,
6876,
6877,
6878,
6879,
6880,
6881,
6882,
6883,
6884,
6885,
6886,
6887,
6888,
6889,
6890,
6891,
6892,
6893,
6894,
6895,
6896,
6897,
6898,
6899,
6900,
6901,
6902,
1712,
6903,
6904,
6905,
6906,
6907,
6908,
6909,
6910,
1713,
6911,
6912,
6913,
6914,
6915,
6916,
6917,
6918,
6919,
6920,
6921,
6922,
6923,
6924,
6925,
6926,
6927,
6928,
6929,
6930,
6931,
6932,
6933,
6934,
6935,
6936,
6937,
6938,
6939,
6940,
6941,
6942,
6943,
6944,
6945,
6946,
6947,
6948,
6949,
6950,
6951,
6952,
6953,
6954,
6955,
6956,
6957,
6958,
6959,
6960,
6961,
6962,
6963,
6964,
6965,
6966,
6967,
6968,
6969,
6970,
6971,
6972,
6973,
6974,
1714,
6975,
6976,
6977,
6978,
6979,
6980,
6981,
6982,
6983,
6984,
6985,
6986,
6987,
6988,
1394,
6989,
6990,
6991,
6992,
6993,
6994,
6995,
6996,
6997,
6998,
6999,
7e3,
1715,
7001,
7002,
7003,
7004,
7005,
7006,
7007,
7008,
7009,
7010,
7011,
7012,
7013,
7014,
7015,
7016,
7017,
7018,
7019,
7020,
7021,
7022,
7023,
7024,
7025,
7026,
7027,
7028,
1716,
7029,
7030,
7031,
7032,
7033,
7034,
7035,
7036,
7037,
7038,
7039,
7040,
7041,
7042,
7043,
7044,
7045,
7046,
7047,
7048,
7049,
7050,
7051,
7052,
7053,
7054,
7055,
7056,
7057,
7058,
7059,
7060,
7061,
7062,
7063,
7064,
7065,
7066,
7067,
7068,
7069,
7070,
7071,
7072,
7073,
7074,
7075,
7076,
7077,
7078,
7079,
7080,
7081,
7082,
7083,
7084,
7085,
7086,
7087,
7088,
7089,
7090,
7091,
7092,
7093,
7094,
7095,
7096,
7097,
7098,
7099,
7100,
7101,
7102,
7103,
7104,
7105,
7106,
7107,
7108,
7109,
7110,
7111,
7112,
7113,
7114,
7115,
7116,
7117,
7118,
7119,
7120,
7121,
7122,
7123,
7124,
7125,
7126,
7127,
7128,
7129,
7130,
7131,
7132,
7133,
7134,
7135,
7136,
7137,
7138,
7139,
7140,
7141,
7142,
7143,
7144,
7145,
7146,
7147,
7148,
7149,
7150,
7151,
7152,
7153,
7154,
7155,
7156,
7157,
7158,
7159,
7160,
7161,
7162,
7163,
7164,
7165,
7166,
7167,
7168,
7169,
7170,
7171,
7172,
7173,
7174,
7175,
7176,
7177,
7178,
7179,
7180,
7181,
7182,
7183,
7184,
7185,
7186,
7187,
7188,
7189,
7190,
7191,
7192,
7193,
7194,
7195,
7196,
7197,
7198,
7199,
7200,
7201,
7202,
7203,
7204,
7205,
7206,
7207,
1395,
7208,
7209,
7210,
7211,
7212,
7213,
1717,
7214,
7215,
7216,
7217,
7218,
7219,
7220,
7221,
7222,
7223,
7224,
7225,
7226,
7227,
7228,
7229,
7230,
7231,
7232,
7233,
7234,
7235,
7236,
7237,
7238,
7239,
7240,
7241,
7242,
7243,
7244,
7245,
7246,
7247,
7248,
7249,
7250,
7251,
7252,
7253,
7254,
7255,
7256,
7257,
7258,
7259,
7260,
7261,
7262,
7263,
7264,
7265,
7266,
7267,
7268,
7269,
7270,
7271,
7272,
7273,
7274,
7275,
7276,
7277,
7278,
7279,
7280,
7281,
7282,
7283,
7284,
7285,
7286,
7287,
7288,
7289,
7290,
7291,
7292,
7293,
7294,
7295,
7296,
7297,
7298,
7299,
7300,
7301,
7302,
7303,
7304,
7305,
7306,
7307,
7308,
7309,
7310,
7311,
7312,
7313,
1718,
7314,
7315,
7316,
7317,
7318,
7319,
7320,
7321,
7322,
7323,
7324,
7325,
7326,
7327,
7328,
7329,
7330,
7331,
7332,
7333,
7334,
7335,
7336,
7337,
7338,
7339,
7340,
7341,
7342,
7343,
7344,
7345,
7346,
7347,
7348,
7349,
7350,
7351,
7352,
7353,
7354,
7355,
7356,
7357,
7358,
7359,
7360,
7361,
7362,
7363,
7364,
7365,
7366,
7367,
7368,
7369,
7370,
7371,
7372,
7373,
7374,
7375,
7376,
7377,
7378,
7379,
7380,
7381,
7382,
7383,
7384,
7385,
7386,
7387,
7388,
7389,
7390,
7391,
7392,
7393,
7394,
7395,
7396,
7397,
7398,
7399,
7400,
7401,
7402,
7403,
7404,
7405,
7406,
7407,
7408,
7409,
7410,
7411,
7412,
7413,
7414,
7415,
7416,
7417,
7418,
7419,
7420,
7421,
7422,
7423,
7424,
7425,
7426,
7427,
7428,
7429,
7430,
7431,
7432,
7433,
7434,
7435,
7436,
7437,
7438,
7439,
7440,
7441,
7442,
7443,
7444,
7445,
7446,
7447,
7448,
7449,
7450,
7451,
7452,
7453,
7454,
7455,
7456,
7457,
7458,
7459,
7460,
7461,
7462,
7463,
7464,
7465,
7466,
7467,
7468,
7469,
7470,
7471,
7472,
7473,
7474,
7475,
7476,
7477,
7478,
7479,
7480,
7481,
7482,
7483,
7484,
7485,
7486,
7487,
7488,
7489,
7490,
7491,
7492,
7493,
7494,
7495,
7496,
7497,
7498,
7499,
7500,
7501,
7502,
7503,
7504,
7505,
7506,
7507,
7508,
7509,
7510,
7511,
7512,
7513,
7514,
7515,
7516,
7517,
7518,
7519,
7520,
7521,
7522,
7523,
7524,
7525,
7526,
7527,
7528,
7529,
7530,
7531,
7532,
7533,
7534,
7535,
7536,
7537,
7538,
7539,
7540,
7541,
7542,
7543,
7544,
7545,
7546,
7547,
7548,
7549,
7550,
7551,
7552,
7553,
7554,
7555,
7556,
7557,
7558,
7559,
7560,
7561,
7562,
7563,
7564,
7565,
7566,
7567,
7568,
7569,
7570,
7571,
7572,
7573,
7574,
7575,
7576,
7577,
7578,
7579,
7580,
7581,
7582,
7583,
7584,
7585,
7586,
7587,
7588,
7589,
7590,
7591,
7592,
7593,
7594,
7595,
7596,
7597,
7598,
7599,
7600,
7601,
7602,
7603,
7604,
7605,
7606,
7607,
7608,
7609,
7610,
7611,
7612,
7613,
7614,
7615,
7616,
7617,
7618,
7619,
7620,
7621,
7622,
7623,
7624,
7625,
7626,
7627,
7628,
7629,
7630,
7631,
7632,
7633,
7634,
7635,
7636,
7637,
7638,
7639,
7640,
7641,
7642,
7643,
7644,
7645,
7646,
7647,
7648,
7649,
7650,
7651,
7652,
7653,
7654,
7655,
7656,
7657,
7658,
7659,
7660,
7661,
7662,
7663,
7664,
7665,
7666,
7667,
7668,
7669,
7670,
7671,
7672,
7673,
7674,
7675,
7676,
7677,
7678,
7679,
7680,
7681,
7682,
7683,
7684,
7685,
7686,
7687,
7688,
7689,
7690,
7691,
7692,
7693,
7694,
7695,
7696,
7697,
7698,
7699,
7700,
7701,
7702,
7703,
7704,
7705,
7706,
7707,
7708,
7709,
7710,
7711,
7712,
7713,
7714,
7715,
7716,
7717,
7718,
7719,
7720,
7721,
7722,
7723,
7724,
7725,
7726,
7727,
7728,
7729,
7730,
7731,
7732,
7733,
7734,
7735,
7736,
7737,
7738,
7739,
7740,
7741,
7742,
7743,
7744,
7745,
7746,
7747,
7748,
7749,
7750,
7751,
7752,
7753,
7754,
7755,
7756,
7757,
7758,
7759,
7760,
7761,
7762,
7763,
7764,
7765,
7766,
7767,
7768,
7769,
7770,
7771,
7772,
7773,
7774,
7775,
7776,
7777,
7778,
7779,
7780,
7781,
7782,
7783,
7784,
7785,
7786,
7787,
7788,
7789,
7790,
7791,
7792,
7793,
7794,
7795,
7796,
7797,
7798,
7799,
7800,
7801,
7802,
7803,
7804,
7805,
7806,
7807,
7808,
7809,
7810,
7811,
7812,
7813,
7814,
7815,
7816,
7817,
7818,
7819,
7820,
7821,
7822,
7823,
7824,
7825,
7826,
7827,
7828,
7829,
7830,
7831,
7832,
7833,
7834,
7835,
7836,
7837,
7838,
7839,
7840,
7841,
7842,
7843,
7844,
7845,
7846,
7847,
7848,
7849,
7850,
7851,
7852,
7853,
7854,
7855,
7856,
7857,
7858,
7859,
7860,
7861,
7862,
7863,
7864,
7865,
7866,
7867,
7868,
7869,
7870,
7871,
7872,
7873,
7874,
7875,
7876,
7877,
7878,
7879,
7880,
7881,
7882,
7883,
7884,
7885,
7886,
7887,
7888,
7889,
7890,
7891,
7892,
7893,
7894,
7895,
7896,
7897,
7898,
7899,
7900,
7901,
7902,
7903,
7904,
7905,
7906,
7907,
7908,
7909,
7910,
7911,
7912,
7913,
7914,
7915,
7916,
7917,
7918,
7919,
7920,
7921,
7922,
7923,
7924,
7925,
7926,
7927,
7928,
7929,
7930,
7931,
7932,
7933,
7934,
7935,
7936,
7937,
7938,
7939,
7940,
7941,
7942,
7943,
7944,
7945,
7946,
7947,
7948,
7949,
7950,
7951,
7952,
7953,
7954,
7955,
7956,
7957,
7958,
7959,
7960,
7961,
7962,
7963,
7964,
7965,
7966,
7967,
7968,
7969,
7970,
7971,
7972,
7973,
7974,
7975,
7976,
7977,
7978,
7979,
7980,
7981,
7982,
7983,
7984,
7985,
7986,
7987,
7988,
7989,
7990,
7991,
7992,
7993,
7994,
7995,
7996,
7997,
7998,
7999,
8e3,
8001,
8002,
8003,
8004,
8005,
8006,
8007,
8008,
8009,
8010,
8011,
8012,
8013,
8014,
8015,
8016,
8017,
8018,
8019,
8020,
8021,
8022,
8023,
8024,
8025,
8026,
8027,
8028,
8029,
8030,
8031,
8032,
8033,
8034,
8035,
8036,
8037,
8038,
8039,
8040,
8041,
8042,
8043,
8044,
8045,
8046,
8047,
8048,
8049,
8050,
8051,
8052,
8053,
8054,
8055,
8056,
8057,
8058,
8059,
8060,
8061,
8062,
8063,
8064,
8065,
8066,
8067,
8068,
8069,
8070,
8071,
8072,
8073,
8074,
8075,
8076,
8077,
8078,
8079,
8080,
8081,
8082,
8083,
8084,
8085,
8086,
8087,
8088,
8089,
8090,
8091,
8092,
8093,
8094,
8095,
8096,
8097,
8098,
8099,
8100,
8101,
8102,
8103,
8104,
8105,
8106,
8107,
8108,
8109,
8110,
8111,
8112,
8113,
8114,
8115,
8116,
8117,
8118,
8119,
8120,
8121,
8122,
8123,
8124,
8125,
8126,
8127,
8128,
8129,
8130,
8131,
8132,
8133,
8134,
8135,
8136,
8137,
8138,
8139,
8140,
8141,
8142,
8143,
8144,
8145,
8146,
8147,
8148,
8149,
8150,
8151,
8152,
8153,
8154,
8155,
8156,
8157,
8158,
8159,
8160,
8161,
8162,
8163,
8164,
8165,
8166,
8167,
8168,
8169,
8170,
8171,
8172,
8173,
8174,
8175,
8176,
8177,
8178,
8179,
8180,
8181,
8182,
8183,
8184,
8185,
8186,
8187,
8188,
8189,
8190,
8191,
8192,
8193,
8194,
8195,
8196,
8197,
8198,
8199,
8200,
8201,
8202,
8203,
8204,
8205,
8206,
8207,
8208,
8209,
8210,
8211,
8212,
8213,
8214,
8215,
8216,
8217,
8218,
8219,
8220,
8221,
8222,
8223,
8224,
8225,
8226,
8227,
8228,
8229,
8230,
8231,
8232,
8233,
8234,
8235,
8236,
8237,
8238,
8239,
8240,
8241,
8242,
8243,
8244,
8245,
8246,
8247,
8248,
8249,
8250,
8251,
8252,
8253,
8254,
8255,
8256,
8257,
8258,
8259,
8260,
8261,
8262,
8263,
8264,
8265,
8266,
8267,
8268,
8269,
8270,
8271,
8272,
8273,
8274,
8275,
8276,
8277,
8278,
8279,
8280,
8281,
8282,
8283,
8284,
8285,
8286,
8287,
8288,
8289,
8290,
8291,
8292,
8293,
8294,
8295,
8296,
8297,
8298,
8299,
8300,
8301,
8302,
8303,
8304,
8305,
8306,
8307,
8308,
8309,
8310,
8311,
8312,
8313,
8314,
8315,
8316,
8317,
8318,
8319,
8320,
8321,
8322,
8323,
8324,
8325,
8326,
8327,
8328,
8329,
8330,
8331,
8332,
8333,
8334,
8335,
8336,
8337,
8338,
8339,
8340,
8341,
8342,
8343,
8344,
8345,
8346,
8347,
8348,
8349,
8350,
8351,
8352,
8353,
8354,
8355,
8356,
8357,
8358,
8359,
8360,
8361,
8362,
8363,
8364,
8365,
8366,
8367,
8368,
8369,
8370,
8371,
8372,
8373,
8374,
8375,
8376,
8377,
8378,
8379,
8380,
8381,
8382,
8383,
8384,
8385,
8386,
8387,
8388,
8389,
8390,
8391,
8392,
8393,
8394,
8395,
8396,
8397,
8398,
8399,
8400,
8401,
8402,
8403,
8404,
8405,
8406,
8407,
8408,
8409,
8410,
8411,
8412,
8413,
8414,
8415,
8416,
8417,
8418,
8419,
8420,
8421,
8422,
8423,
8424,
8425,
8426,
8427,
8428,
8429,
8430,
8431,
8432,
8433,
8434,
8435,
8436,
8437,
8438,
8439,
8440,
8441,
8442,
8443,
8444,
8445,
8446,
8447,
8448,
8449,
8450,
8451,
8452,
8453,
8454,
8455,
8456,
8457,
8458,
8459,
8460,
8461,
8462,
8463,
8464,
8465,
8466,
8467,
8468,
8469,
8470,
8471,
8472,
8473,
8474,
8475,
8476,
8477,
8478,
8479,
8480,
8481,
8482,
8483,
8484,
8485,
8486,
8487,
8488,
8489,
8490,
8491,
8492,
8493,
8494,
8495,
8496,
8497,
8498,
8499,
8500,
8501,
8502,
8503,
8504,
8505,
8506,
8507,
8508,
8509,
8510,
8511,
8512,
8513,
8514,
8515,
8516,
8517,
8518,
8519,
8520,
8521,
8522,
8523,
8524,
8525,
8526,
8527,
8528,
8529,
8530,
8531,
8532,
8533,
8534,
8535,
8536,
8537,
8538,
8539,
8540,
8541,
8542,
8543,
8544,
8545,
8546,
8547,
8548,
8549,
8550,
8551,
8552,
8553,
8554,
8555,
8556,
8557,
8558,
8559,
8560,
8561,
8562,
8563,
8564,
8565,
8566,
8567,
8568,
8569,
8570,
8571,
8572,
8573,
8574,
8575,
8576,
8577,
8578,
8579,
8580,
8581,
8582,
8583,
8584,
8585,
8586,
8587,
8588,
8589,
8590,
8591,
8592,
8593,
8594,
8595,
8596,
8597,
8598,
8599,
8600,
8601,
8602,
8603,
8604,
8605,
8606,
8607,
8608,
8609,
8610,
8611,
8612,
8613,
8614,
8615,
8616,
8617,
8618,
8619,
8620,
8621,
8622,
8623,
8624,
8625,
8626,
8627,
8628,
8629,
8630,
8631,
8632,
8633,
8634,
8635,
8636,
8637,
8638,
8639,
8640,
8641,
8642,
8643,
8644,
8645,
8646,
8647,
8648,
8649,
8650,
8651,
8652,
8653,
8654,
8655,
8656,
8657,
8658,
8659,
8660,
8661,
8662,
8663,
8664,
8665,
8666,
8667,
8668,
8669,
8670,
8671,
8672,
8673,
8674,
8675,
8676,
8677,
8678,
8679,
8680,
8681,
8682,
8683,
8684,
8685,
8686,
8687,
8688,
8689,
8690,
8691,
8692,
8693,
8694,
8695,
8696,
8697,
8698,
8699,
8700,
8701,
8702,
8703,
8704,
8705,
8706,
8707,
8708,
8709,
8710,
8711,
8712,
8713,
8714,
8715,
8716,
8717,
8718,
8719,
8720,
8721,
8722,
8723,
8724,
8725,
8726,
8727,
8728,
8729,
8730,
8731,
8732,
8733,
8734,
8735,
8736,
8737,
8738,
8739,
8740,
8741
];
}
});
// node_modules/jschardet/src/gb2312freq.js
var require_gb2312freq = __commonJS({
"node_modules/jschardet/src/gb2312freq.js"(exports) {
exports.GB2312_TYPICAL_DISTRIBUTION_RATIO = 0.9;
exports.GB2312_TABLE_SIZE = 3760;
exports.GB2312CharToFreqOrder = [
1671,
749,
1443,
2364,
3924,
3807,
2330,
3921,
1704,
3463,
2691,
1511,
1515,
572,
3191,
2205,
2361,
224,
2558,
479,
1711,
963,
3162,
440,
4060,
1905,
2966,
2947,
3580,
2647,
3961,
3842,
2204,
869,
4207,
970,
2678,
5626,
2944,
2956,
1479,
4048,
514,
3595,
588,
1346,
2820,
3409,
249,
4088,
1746,
1873,
2047,
1774,
581,
1813,
358,
1174,
3590,
1014,
1561,
4844,
2245,
670,
1636,
3112,
889,
1286,
953,
556,
2327,
3060,
1290,
3141,
613,
185,
3477,
1367,
850,
3820,
1715,
2428,
2642,
2303,
2732,
3041,
2562,
2648,
3566,
3946,
1349,
388,
3098,
2091,
1360,
3585,
152,
1687,
1539,
738,
1559,
59,
1232,
2925,
2267,
1388,
1249,
1741,
1679,
2960,
151,
1566,
1125,
1352,
4271,
924,
4296,
385,
3166,
4459,
310,
1245,
2850,
70,
3285,
2729,
3534,
3575,
2398,
3298,
3466,
1960,
2265,
217,
3647,
864,
1909,
2084,
4401,
2773,
1010,
3269,
5152,
853,
3051,
3121,
1244,
4251,
1895,
364,
1499,
1540,
2313,
1180,
3655,
2268,
562,
715,
2417,
3061,
544,
336,
3768,
2380,
1752,
4075,
950,
280,
2425,
4382,
183,
2759,
3272,
333,
4297,
2155,
1688,
2356,
1444,
1039,
4540,
736,
1177,
3349,
2443,
2368,
2144,
2225,
565,
196,
1482,
3406,
927,
1335,
4147,
692,
878,
1311,
1653,
3911,
3622,
1378,
4200,
1840,
2969,
3149,
2126,
1816,
2534,
1546,
2393,
2760,
737,
2494,
13,
447,
245,
2747,
38,
2765,
2129,
2589,
1079,
606,
360,
471,
3755,
2890,
404,
848,
699,
1785,
1236,
370,
2221,
1023,
3746,
2074,
2026,
2023,
2388,
1581,
2119,
812,
1141,
3091,
2536,
1519,
804,
2053,
406,
1596,
1090,
784,
548,
4414,
1806,
2264,
2936,
1100,
343,
4114,
5096,
622,
3358,
743,
3668,
1510,
1626,
5020,
3567,
2513,
3195,
4115,
5627,
2489,
2991,
24,
2065,
2697,
1087,
2719,
48,
1634,
315,
68,
985,
2052,
198,
2239,
1347,
1107,
1439,
597,
2366,
2172,
871,
3307,
919,
2487,
2790,
1867,
236,
2570,
1413,
3794,
906,
3365,
3381,
1701,
1982,
1818,
1524,
2924,
1205,
616,
2586,
2072,
2004,
575,
253,
3099,
32,
1365,
1182,
197,
1714,
2454,
1201,
554,
3388,
3224,
2748,
756,
2587,
250,
2567,
1507,
1517,
3529,
1922,
2761,
2337,
3416,
1961,
1677,
2452,
2238,
3153,
615,
911,
1506,
1474,
2495,
1265,
1906,
2749,
3756,
3280,
2161,
898,
2714,
1759,
3450,
2243,
2444,
563,
26,
3286,
2266,
3769,
3344,
2707,
3677,
611,
1402,
531,
1028,
2871,
4548,
1375,
261,
2948,
835,
1190,
4134,
353,
840,
2684,
1900,
3082,
1435,
2109,
1207,
1674,
329,
1872,
2781,
4055,
2686,
2104,
608,
3318,
2423,
2957,
2768,
1108,
3739,
3512,
3271,
3985,
2203,
1771,
3520,
1418,
2054,
1681,
1153,
225,
1627,
2929,
162,
2050,
2511,
3687,
1954,
124,
1859,
2431,
1684,
3032,
2894,
585,
4805,
3969,
2869,
2704,
2088,
2032,
2095,
3656,
2635,
4362,
2209,
256,
518,
2042,
2105,
3777,
3657,
643,
2298,
1148,
1779,
190,
989,
3544,
414,
11,
2135,
2063,
2979,
1471,
403,
3678,
126,
770,
1563,
671,
2499,
3216,
2877,
600,
1179,
307,
2805,
4937,
1268,
1297,
2694,
252,
4032,
1448,
1494,
1331,
1394,
127,
2256,
222,
1647,
1035,
1481,
3056,
1915,
1048,
873,
3651,
210,
33,
1608,
2516,
200,
1520,
415,
102,
0,
3389,
1287,
817,
91,
3299,
2940,
836,
1814,
549,
2197,
1396,
1669,
2987,
3582,
2297,
2848,
4528,
1070,
687,
20,
1819,
121,
1552,
1364,
1461,
1968,
2617,
3540,
2824,
2083,
177,
948,
4938,
2291,
110,
4549,
2066,
648,
3359,
1755,
2110,
2114,
4642,
4845,
1693,
3937,
3308,
1257,
1869,
2123,
208,
1804,
3159,
2992,
2531,
2549,
3361,
2418,
1350,
2347,
2800,
2568,
1291,
2036,
2680,
72,
842,
1990,
212,
1233,
1154,
1586,
75,
2027,
3410,
4900,
1823,
1337,
2710,
2676,
728,
2810,
1522,
3026,
4995,
157,
755,
1050,
4022,
710,
785,
1936,
2194,
2085,
1406,
2777,
2400,
150,
1250,
4049,
1206,
807,
1910,
534,
529,
3309,
1721,
1660,
274,
39,
2827,
661,
2670,
1578,
925,
3248,
3815,
1094,
4278,
4901,
4252,
41,
1150,
3747,
2572,
2227,
4501,
3658,
4902,
3813,
3357,
3617,
2884,
2258,
887,
538,
4187,
3199,
1294,
2439,
3042,
2329,
2343,
2497,
1255,
107,
543,
1527,
521,
3478,
3568,
194,
5062,
15,
961,
3870,
1241,
1192,
2664,
66,
5215,
3260,
2111,
1295,
1127,
2152,
3805,
4135,
901,
1164,
1976,
398,
1278,
530,
1460,
748,
904,
1054,
1966,
1426,
53,
2909,
509,
523,
2279,
1534,
536,
1019,
239,
1685,
460,
2353,
673,
1065,
2401,
3600,
4298,
2272,
1272,
2363,
284,
1753,
3679,
4064,
1695,
81,
815,
2677,
2757,
2731,
1386,
859,
500,
4221,
2190,
2566,
757,
1006,
2519,
2068,
1166,
1455,
337,
2654,
3203,
1863,
1682,
1914,
3025,
1252,
1409,
1366,
847,
714,
2834,
2038,
3209,
964,
2970,
1901,
885,
2553,
1078,
1756,
3049,
301,
1572,
3326,
688,
2130,
1996,
2429,
1805,
1648,
2930,
3421,
2750,
3652,
3088,
262,
1158,
1254,
389,
1641,
1812,
526,
1719,
923,
2073,
1073,
1902,
468,
489,
4625,
1140,
857,
2375,
3070,
3319,
2863,
380,
116,
1328,
2693,
1161,
2244,
273,
1212,
1884,
2769,
3011,
1775,
1142,
461,
3066,
1200,
2147,
2212,
790,
702,
2695,
4222,
1601,
1058,
434,
2338,
5153,
3640,
67,
2360,
4099,
2502,
618,
3472,
1329,
416,
1132,
830,
2782,
1807,
2653,
3211,
3510,
1662,
192,
2124,
296,
3979,
1739,
1611,
3684,
23,
118,
324,
446,
1239,
1225,
293,
2520,
3814,
3795,
2535,
3116,
17,
1074,
467,
2692,
2201,
387,
2922,
45,
1326,
3055,
1645,
3659,
2817,
958,
243,
1903,
2320,
1339,
2825,
1784,
3289,
356,
576,
865,
2315,
2381,
3377,
3916,
1088,
3122,
1713,
1655,
935,
628,
4689,
1034,
1327,
441,
800,
720,
894,
1979,
2183,
1528,
5289,
2702,
1071,
4046,
3572,
2399,
1571,
3281,
79,
761,
1103,
327,
134,
758,
1899,
1371,
1615,
879,
442,
215,
2605,
2579,
173,
2048,
2485,
1057,
2975,
3317,
1097,
2253,
3801,
4263,
1403,
1650,
2946,
814,
4968,
3487,
1548,
2644,
1567,
1285,
2,
295,
2636,
97,
946,
3576,
832,
141,
4257,
3273,
760,
3821,
3521,
3156,
2607,
949,
1024,
1733,
1516,
1803,
1920,
2125,
2283,
2665,
3180,
1501,
2064,
3560,
2171,
1592,
803,
3518,
1416,
732,
3897,
4258,
1363,
1362,
2458,
119,
1427,
602,
1525,
2608,
1605,
1639,
3175,
694,
3064,
10,
465,
76,
2e3,
4846,
4208,
444,
3781,
1619,
3353,
2206,
1273,
3796,
740,
2483,
320,
1723,
2377,
3660,
2619,
1359,
1137,
1762,
1724,
2345,
2842,
1850,
1862,
912,
821,
1866,
612,
2625,
1735,
2573,
3369,
1093,
844,
89,
937,
930,
1424,
3564,
2413,
2972,
1004,
3046,
3019,
2011,
711,
3171,
1452,
4178,
428,
801,
1943,
432,
445,
2811,
206,
4136,
1472,
730,
349,
73,
397,
2802,
2547,
998,
1637,
1167,
789,
396,
3217,
154,
1218,
716,
1120,
1780,
2819,
4826,
1931,
3334,
3762,
2139,
1215,
2627,
552,
3664,
3628,
3232,
1405,
2383,
3111,
1356,
2652,
3577,
3320,
3101,
1703,
640,
1045,
1370,
1246,
4996,
371,
1575,
2436,
1621,
2210,
984,
4033,
1734,
2638,
16,
4529,
663,
2755,
3255,
1451,
3917,
2257,
1253,
1955,
2234,
1263,
2951,
214,
1229,
617,
485,
359,
1831,
1969,
473,
2310,
750,
2058,
165,
80,
2864,
2419,
361,
4344,
2416,
2479,
1134,
796,
3726,
1266,
2943,
860,
2715,
938,
390,
2734,
1313,
1384,
248,
202,
877,
1064,
2854,
522,
3907,
279,
1602,
297,
2357,
395,
3740,
137,
2075,
944,
4089,
2584,
1267,
3802,
62,
1533,
2285,
178,
176,
780,
2440,
201,
3707,
590,
478,
1560,
4354,
2117,
1075,
30,
74,
4643,
4004,
1635,
1441,
2745,
776,
2596,
238,
1077,
1692,
1912,
2844,
605,
499,
1742,
3947,
241,
3053,
980,
1749,
936,
2640,
4511,
2582,
515,
1543,
2162,
5322,
2892,
2993,
890,
2148,
1924,
665,
1827,
3581,
1032,
968,
3163,
339,
1044,
1896,
270,
583,
1791,
1720,
4367,
1194,
3488,
3669,
43,
2523,
1657,
163,
2167,
290,
1209,
1622,
3378,
550,
634,
2508,
2510,
695,
2634,
2384,
2512,
1476,
1414,
220,
1469,
2341,
2138,
2852,
3183,
2900,
4939,
2865,
3502,
1211,
3680,
854,
3227,
1299,
2976,
3172,
186,
2998,
1459,
443,
1067,
3251,
1495,
321,
1932,
3054,
909,
753,
1410,
1828,
436,
2441,
1119,
1587,
3164,
2186,
1258,
227,
231,
1425,
1890,
3200,
3942,
247,
959,
725,
5254,
2741,
577,
2158,
2079,
929,
120,
174,
838,
2813,
591,
1115,
417,
2024,
40,
3240,
1536,
1037,
291,
4151,
2354,
632,
1298,
2406,
2500,
3535,
1825,
1846,
3451,
205,
1171,
345,
4238,
18,
1163,
811,
685,
2208,
1217,
425,
1312,
1508,
1175,
4308,
2552,
1033,
587,
1381,
3059,
2984,
3482,
340,
1316,
4023,
3972,
792,
3176,
519,
777,
4690,
918,
933,
4130,
2981,
3741,
90,
3360,
2911,
2200,
5184,
4550,
609,
3079,
2030,
272,
3379,
2736,
363,
3881,
1130,
1447,
286,
779,
357,
1169,
3350,
3137,
1630,
1220,
2687,
2391,
747,
1277,
3688,
2618,
2682,
2601,
1156,
3196,
5290,
4034,
3102,
1689,
3596,
3128,
874,
219,
2783,
798,
508,
1843,
2461,
269,
1658,
1776,
1392,
1913,
2983,
3287,
2866,
2159,
2372,
829,
4076,
46,
4253,
2873,
1889,
1894,
915,
1834,
1631,
2181,
2318,
298,
664,
2818,
3555,
2735,
954,
3228,
3117,
527,
3511,
2173,
681,
2712,
3033,
2247,
2346,
3467,
1652,
155,
2164,
3382,
113,
1994,
450,
899,
494,
994,
1237,
2958,
1875,
2336,
1926,
3727,
545,
1577,
1550,
633,
3473,
204,
1305,
3072,
2410,
1956,
2471,
707,
2134,
841,
2195,
2196,
2663,
3843,
1026,
4940,
990,
3252,
4997,
368,
1092,
437,
3212,
3258,
1933,
1829,
675,
2977,
2893,
412,
943,
3723,
4644,
3294,
3283,
2230,
2373,
5154,
2389,
2241,
2661,
2323,
1404,
2524,
593,
787,
677,
3008,
1275,
2059,
438,
2709,
2609,
2240,
2269,
2246,
1446,
36,
1568,
1373,
3892,
1574,
2301,
1456,
3962,
693,
2276,
5216,
2035,
1143,
2720,
1919,
1797,
1811,
2763,
4137,
2597,
1830,
1699,
1488,
1198,
2090,
424,
1694,
312,
3634,
3390,
4179,
3335,
2252,
1214,
561,
1059,
3243,
2295,
2561,
975,
5155,
2321,
2751,
3772,
472,
1537,
3282,
3398,
1047,
2077,
2348,
2878,
1323,
3340,
3076,
690,
2906,
51,
369,
170,
3541,
1060,
2187,
2688,
3670,
2541,
1083,
1683,
928,
3918,
459,
109,
4427,
599,
3744,
4286,
143,
2101,
2730,
2490,
82,
1588,
3036,
2121,
281,
1860,
477,
4035,
1238,
2812,
3020,
2716,
3312,
1530,
2188,
2055,
1317,
843,
636,
1808,
1173,
3495,
649,
181,
1002,
147,
3641,
1159,
2414,
3750,
2289,
2795,
813,
3123,
2610,
1136,
4368,
5,
3391,
4541,
2174,
420,
429,
1728,
754,
1228,
2115,
2219,
347,
2223,
2733,
735,
1518,
3003,
2355,
3134,
1764,
3948,
3329,
1888,
2424,
1001,
1234,
1972,
3321,
3363,
1672,
1021,
1450,
1584,
226,
765,
655,
2526,
3404,
3244,
2302,
3665,
731,
594,
2184,
319,
1576,
621,
658,
2656,
4299,
2099,
3864,
1279,
2071,
2598,
2739,
795,
3086,
3699,
3908,
1707,
2352,
2402,
1382,
3136,
2475,
1465,
4847,
3496,
3865,
1085,
3004,
2591,
1084,
213,
2287,
1963,
3565,
2250,
822,
793,
4574,
3187,
1772,
1789,
3050,
595,
1484,
1959,
2770,
1080,
2650,
456,
422,
2996,
940,
3322,
4328,
4345,
3092,
2742,
965,
2784,
739,
4124,
952,
1358,
2498,
2949,
2565,
332,
2698,
2378,
660,
2260,
2473,
4194,
3856,
2919,
535,
1260,
2651,
1208,
1428,
1300,
1949,
1303,
2942,
433,
2455,
2450,
1251,
1946,
614,
1269,
641,
1306,
1810,
2737,
3078,
2912,
564,
2365,
1419,
1415,
1497,
4460,
2367,
2185,
1379,
3005,
1307,
3218,
2175,
1897,
3063,
682,
1157,
4040,
4005,
1712,
1160,
1941,
1399,
394,
402,
2952,
1573,
1151,
2986,
2404,
862,
299,
2033,
1489,
3006,
346,
171,
2886,
3401,
1726,
2932,
168,
2533,
47,
2507,
1030,
3735,
1145,
3370,
1395,
1318,
1579,
3609,
4560,
2857,
4116,
1457,
2529,
1965,
504,
1036,
2690,
2988,
2405,
745,
5871,
849,
2397,
2056,
3081,
863,
2359,
3857,
2096,
99,
1397,
1769,
2300,
4428,
1643,
3455,
1978,
1757,
3718,
1440,
35,
4879,
3742,
1296,
4228,
2280,
160,
5063,
1599,
2013,
166,
520,
3479,
1646,
3345,
3012,
490,
1937,
1545,
1264,
2182,
2505,
1096,
1188,
1369,
1436,
2421,
1667,
2792,
2460,
1270,
2122,
727,
3167,
2143,
806,
1706,
1012,
1800,
3037,
960,
2218,
1882,
805,
139,
2456,
1139,
1521,
851,
1052,
3093,
3089,
342,
2039,
744,
5097,
1468,
1502,
1585,
2087,
223,
939,
326,
2140,
2577,
892,
2481,
1623,
4077,
982,
3708,
135,
2131,
87,
2503,
3114,
2326,
1106,
876,
1616,
547,
2997,
2831,
2093,
3441,
4530,
4314,
9,
3256,
4229,
4148,
659,
1462,
1986,
1710,
2046,
2913,
2231,
4090,
4880,
5255,
3392,
3274,
1368,
3689,
4645,
1477,
705,
3384,
3635,
1068,
1529,
2941,
1458,
3782,
1509,
100,
1656,
2548,
718,
2339,
408,
1590,
2780,
3548,
1838,
4117,
3719,
1345,
3530,
717,
3442,
2778,
3220,
2898,
1892,
4590,
3614,
3371,
2043,
1998,
1224,
3483,
891,
635,
584,
2559,
3355,
733,
1766,
1729,
1172,
3789,
1891,
2307,
781,
2982,
2271,
1957,
1580,
5773,
2633,
2005,
4195,
3097,
1535,
3213,
1189,
1934,
5693,
3262,
586,
3118,
1324,
1598,
517,
1564,
2217,
1868,
1893,
4445,
3728,
2703,
3139,
1526,
1787,
1992,
3882,
2875,
1549,
1199,
1056,
2224,
1904,
2711,
5098,
4287,
338,
1993,
3129,
3489,
2689,
1809,
2815,
1997,
957,
1855,
3898,
2550,
3275,
3057,
1105,
1319,
627,
1505,
1911,
1883,
3526,
698,
3629,
3456,
1833,
1431,
746,
77,
1261,
2017,
2296,
1977,
1885,
125,
1334,
1600,
525,
1798,
1109,
2222,
1470,
1945,
559,
2236,
1186,
3443,
2476,
1929,
1411,
2411,
3135,
1777,
3372,
2621,
1841,
1613,
3229,
668,
1430,
1839,
2643,
2916,
195,
1989,
2671,
2358,
1387,
629,
3205,
2293,
5256,
4439,
123,
1310,
888,
1879,
4300,
3021,
3605,
1003,
1162,
3192,
2910,
2010,
140,
2395,
2859,
55,
1082,
2012,
2901,
662,
419,
2081,
1438,
680,
2774,
4654,
3912,
1620,
1731,
1625,
5035,
4065,
2328,
512,
1344,
802,
5443,
2163,
2311,
2537,
524,
3399,
98,
1155,
2103,
1918,
2606,
3925,
2816,
1393,
2465,
1504,
3773,
2177,
3963,
1478,
4346,
180,
1113,
4655,
3461,
2028,
1698,
833,
2696,
1235,
1322,
1594,
4408,
3623,
3013,
3225,
2040,
3022,
541,
2881,
607,
3632,
2029,
1665,
1219,
639,
1385,
1686,
1099,
2803,
3231,
1938,
3188,
2858,
427,
676,
2772,
1168,
2025,
454,
3253,
2486,
3556,
230,
1950,
580,
791,
1991,
1280,
1086,
1974,
2034,
630,
257,
3338,
2788,
4903,
1017,
86,
4790,
966,
2789,
1995,
1696,
1131,
259,
3095,
4188,
1308,
179,
1463,
5257,
289,
4107,
1248,
42,
3413,
1725,
2288,
896,
1947,
774,
4474,
4254,
604,
3430,
4264,
392,
2514,
2588,
452,
237,
1408,
3018,
988,
4531,
1970,
3034,
3310,
540,
2370,
1562,
1288,
2990,
502,
4765,
1147,
4,
1853,
2708,
207,
294,
2814,
4078,
2902,
2509,
684,
34,
3105,
3532,
2551,
644,
709,
2801,
2344,
573,
1727,
3573,
3557,
2021,
1081,
3100,
4315,
2100,
3681,
199,
2263,
1837,
2385,
146,
3484,
1195,
2776,
3949,
997,
1939,
3973,
1008,
1091,
1202,
1962,
1847,
1149,
4209,
5444,
1076,
493,
117,
5400,
2521,
972,
1490,
2934,
1796,
4542,
2374,
1512,
2933,
2657,
413,
2888,
1135,
2762,
2314,
2156,
1355,
2369,
766,
2007,
2527,
2170,
3124,
2491,
2593,
2632,
4757,
2437,
234,
3125,
3591,
1898,
1750,
1376,
1942,
3468,
3138,
570,
2127,
2145,
3276,
4131,
962,
132,
1445,
4196,
19,
941,
3624,
3480,
3366,
1973,
1374,
4461,
3431,
2629,
283,
2415,
2275,
808,
2887,
3620,
2112,
2563,
1353,
3610,
955,
1089,
3103,
1053,
96,
88,
4097,
823,
3808,
1583,
399,
292,
4091,
3313,
421,
1128,
642,
4006,
903,
2539,
1877,
2082,
596,
29,
4066,
1790,
722,
2157,
130,
995,
1569,
769,
1485,
464,
513,
2213,
288,
1923,
1101,
2453,
4316,
133,
486,
2445,
50,
625,
487,
2207,
57,
423,
481,
2962,
159,
3729,
1558,
491,
303,
482,
501,
240,
2837,
112,
3648,
2392,
1783,
362,
8,
3433,
3422,
610,
2793,
3277,
1390,
1284,
1654,
21,
3823,
734,
367,
623,
193,
287,
374,
1009,
1483,
816,
476,
313,
2255,
2340,
1262,
2150,
2899,
1146,
2581,
782,
2116,
1659,
2018,
1880,
255,
3586,
3314,
1110,
2867,
2137,
2564,
986,
2767,
5185,
2006,
650,
158,
926,
762,
881,
3157,
2717,
2362,
3587,
306,
3690,
3245,
1542,
3077,
2427,
1691,
2478,
2118,
2985,
3490,
2438,
539,
2305,
983,
129,
1754,
355,
4201,
2386,
827,
2923,
104,
1773,
2838,
2771,
411,
2905,
3919,
376,
767,
122,
1114,
828,
2422,
1817,
3506,
266,
3460,
1007,
1609,
4998,
945,
2612,
4429,
2274,
726,
1247,
1964,
2914,
2199,
2070,
4002,
4108,
657,
3323,
1422,
579,
455,
2764,
4737,
1222,
2895,
1670,
824,
1223,
1487,
2525,
558,
861,
3080,
598,
2659,
2515,
1967,
752,
2583,
2376,
2214,
4180,
977,
704,
2464,
4999,
2622,
4109,
1210,
2961,
819,
1541,
142,
2284,
44,
418,
457,
1126,
3730,
4347,
4626,
1644,
1876,
3671,
1864,
302,
1063,
5694,
624,
723,
1984,
3745,
1314,
1676,
2488,
1610,
1449,
3558,
3569,
2166,
2098,
409,
1011,
2325,
3704,
2306,
818,
1732,
1383,
1824,
1844,
3757,
999,
2705,
3497,
1216,
1423,
2683,
2426,
2954,
2501,
2726,
2229,
1475,
2554,
5064,
1971,
1794,
1666,
2014,
1343,
783,
724,
191,
2434,
1354,
2220,
5065,
1763,
2752,
2472,
4152,
131,
175,
2885,
3434,
92,
1466,
4920,
2616,
3871,
3872,
3866,
128,
1551,
1632,
669,
1854,
3682,
4691,
4125,
1230,
188,
2973,
3290,
1302,
1213,
560,
3266,
917,
763,
3909,
3249,
1760,
868,
1958,
764,
1782,
2097,
145,
2277,
3774,
4462,
64,
1491,
3062,
971,
2132,
3606,
2442,
221,
1226,
1617,
218,
323,
1185,
3207,
3147,
571,
619,
1473,
1005,
1744,
2281,
449,
1887,
2396,
3685,
275,
375,
3816,
1743,
3844,
3731,
845,
1983,
2350,
4210,
1377,
773,
967,
3499,
3052,
3743,
2725,
4007,
1697,
1022,
3943,
1464,
3264,
2855,
2722,
1952,
1029,
2839,
2467,
84,
4383,
2215,
820,
1391,
2015,
2448,
3672,
377,
1948,
2168,
797,
2545,
3536,
2578,
2645,
94,
2874,
1678,
405,
1259,
3071,
771,
546,
1315,
470,
1243,
3083,
895,
2468,
981,
969,
2037,
846,
4181,
653,
1276,
2928,
14,
2594,
557,
3007,
2474,
156,
902,
1338,
1740,
2574,
537,
2518,
973,
2282,
2216,
2433,
1928,
138,
2903,
1293,
2631,
1612,
646,
3457,
839,
2935,
111,
496,
2191,
2847,
589,
3186,
149,
3994,
2060,
4031,
2641,
4067,
3145,
1870,
37,
3597,
2136,
1025,
2051,
3009,
3383,
3549,
1121,
1016,
3261,
1301,
251,
2446,
2599,
2153,
872,
3246,
637,
334,
3705,
831,
884,
921,
3065,
3140,
4092,
2198,
1944,
246,
2964,
108,
2045,
1152,
1921,
2308,
1031,
203,
3173,
4170,
1907,
3890,
810,
1401,
2003,
1690,
506,
647,
1242,
2828,
1761,
1649,
3208,
2249,
1589,
3709,
2931,
5156,
1708,
498,
666,
2613,
834,
3817,
1231,
184,
2851,
1124,
883,
3197,
2261,
3710,
1765,
1553,
2658,
1178,
2639,
2351,
93,
1193,
942,
2538,
2141,
4402,
235,
1821,
870,
1591,
2192,
1709,
1871,
3341,
1618,
4126,
2595,
2334,
603,
651,
69,
701,
268,
2662,
3411,
2555,
1380,
1606,
503,
448,
254,
2371,
2646,
574,
1187,
2309,
1770,
322,
2235,
1292,
1801,
305,
566,
1133,
229,
2067,
2057,
706,
167,
483,
2002,
2672,
3295,
1820,
3561,
3067,
316,
378,
2746,
3452,
1112,
136,
1981,
507,
1651,
2917,
1117,
285,
4591,
182,
2580,
3522,
1304,
335,
3303,
1835,
2504,
1795,
1792,
2248,
674,
1018,
2106,
2449,
1857,
2292,
2845,
976,
3047,
1781,
2600,
2727,
1389,
1281,
52,
3152,
153,
265,
3950,
672,
3485,
3951,
4463,
430,
1183,
365,
278,
2169,
27,
1407,
1336,
2304,
209,
1340,
1730,
2202,
1852,
2403,
2883,
979,
1737,
1062,
631,
2829,
2542,
3876,
2592,
825,
2086,
2226,
3048,
3625,
352,
1417,
3724,
542,
991,
431,
1351,
3938,
1861,
2294,
826,
1361,
2927,
3142,
3503,
1738,
463,
2462,
2723,
582,
1916,
1595,
2808,
400,
3845,
3891,
2868,
3621,
2254,
58,
2492,
1123,
910,
2160,
2614,
1372,
1603,
1196,
1072,
3385,
1700,
3267,
1980,
696,
480,
2430,
920,
799,
1570,
2920,
1951,
2041,
4047,
2540,
1321,
4223,
2469,
3562,
2228,
1271,
2602,
401,
2833,
3351,
2575,
5157,
907,
2312,
1256,
410,
263,
3507,
1582,
996,
678,
1849,
2316,
1480,
908,
3545,
2237,
703,
2322,
667,
1826,
2849,
1531,
2604,
2999,
2407,
3146,
2151,
2630,
1786,
3711,
469,
3542,
497,
3899,
2409,
858,
837,
4446,
3393,
1274,
786,
620,
1845,
2001,
3311,
484,
308,
3367,
1204,
1815,
3691,
2332,
1532,
2557,
1842,
2020,
2724,
1927,
2333,
4440,
567,
22,
1673,
2728,
4475,
1987,
1858,
1144,
1597,
101,
1832,
3601,
12,
974,
3783,
4391,
951,
1412,
1,
3720,
453,
4608,
4041,
528,
1041,
1027,
3230,
2628,
1129,
875,
1051,
3291,
1203,
2262,
1069,
2860,
2799,
2149,
2615,
3278,
144,
1758,
3040,
31,
475,
1680,
366,
2685,
3184,
311,
1642,
4008,
2466,
5036,
1593,
1493,
2809,
216,
1420,
1668,
233,
304,
2128,
3284,
232,
1429,
1768,
1040,
2008,
3407,
2740,
2967,
2543,
242,
2133,
778,
1565,
2022,
2620,
505,
2189,
2756,
1098,
2273,
372,
1614,
708,
553,
2846,
2094,
2278,
169,
3626,
2835,
4161,
228,
2674,
3165,
809,
1454,
1309,
466,
1705,
1095,
900,
3423,
880,
2667,
3751,
5258,
2317,
3109,
2571,
4317,
2766,
1503,
1342,
866,
4447,
1118,
63,
2076,
314,
1881,
1348,
1061,
172,
978,
3515,
1747,
532,
511,
3970,
6,
601,
905,
2699,
3300,
1751,
276,
1467,
3725,
2668,
65,
4239,
2544,
2779,
2556,
1604,
578,
2451,
1802,
992,
2331,
2624,
1320,
3446,
713,
1513,
1013,
103,
2786,
2447,
1661,
886,
1702,
916,
654,
3574,
2031,
1556,
751,
2178,
2821,
2179,
1498,
1538,
2176,
271,
914,
2251,
2080,
1325,
638,
1953,
2937,
3877,
2432,
2754,
95,
3265,
1716,
260,
1227,
4083,
775,
106,
1357,
3254,
426,
1607,
555,
2480,
772,
1985,
244,
2546,
474,
495,
1046,
2611,
1851,
2061,
71,
2089,
1675,
2590,
742,
3758,
2843,
3222,
1433,
267,
2180,
2576,
2826,
2233,
2092,
3913,
2435,
956,
1745,
3075,
856,
2113,
1116,
451,
3,
1988,
2896,
1398,
993,
2463,
1878,
2049,
1341,
2718,
2721,
2870,
2108,
712,
2904,
4363,
2753,
2324,
277,
2872,
2349,
2649,
384,
987,
435,
691,
3e3,
922,
164,
3939,
652,
1500,
1184,
4153,
2482,
3373,
2165,
4848,
2335,
3775,
3508,
3154,
2806,
2830,
1554,
2102,
1664,
2530,
1434,
2408,
893,
1547,
2623,
3447,
2832,
2242,
2532,
3169,
2856,
3223,
2078,
49,
3770,
3469,
462,
318,
656,
2259,
3250,
3069,
679,
1629,
2758,
344,
1138,
1104,
3120,
1836,
1283,
3115,
2154,
1437,
4448,
934,
759,
1999,
794,
2862,
1038,
533,
2560,
1722,
2342,
855,
2626,
1197,
1663,
4476,
3127,
85,
4240,
2528,
25,
1111,
1181,
3673,
407,
3470,
4561,
2679,
2713,
768,
1925,
2841,
3986,
1544,
1165,
932,
373,
1240,
2146,
1930,
2673,
721,
4766,
354,
4333,
391,
2963,
187,
61,
3364,
1442,
1102,
330,
1940,
1767,
341,
3809,
4118,
393,
2496,
2062,
2211,
105,
331,
300,
439,
913,
1332,
626,
379,
3304,
1557,
328,
689,
3952,
309,
1555,
931,
317,
2517,
3027,
325,
569,
686,
2107,
3084,
60,
1042,
1333,
2794,
264,
3177,
4014,
1628,
258,
3712,
7,
4464,
1176,
1043,
1778,
683,
114,
1975,
78,
1492,
383,
1886,
510,
386,
645,
5291,
2891,
2069,
3305,
4138,
3867,
2939,
2603,
2493,
1935,
1066,
1848,
3588,
1015,
1282,
1289,
4609,
697,
1453,
3044,
2666,
3611,
1856,
2412,
54,
719,
1330,
568,
3778,
2459,
1748,
788,
492,
551,
1191,
1e3,
488,
3394,
3763,
282,
1799,
348,
2016,
1523,
3155,
2390,
1049,
382,
2019,
1788,
1170,
729,
2968,
3523,
897,
3926,
2785,
2938,
3292,
350,
2319,
3238,
1718,
1717,
2655,
3453,
3143,
4465,
161,
2889,
2980,
2009,
1421,
56,
1908,
1640,
2387,
2232,
1917,
1874,
2477,
4921,
148,
83,
3438,
592,
4245,
2882,
1822,
1055,
741,
115,
1496,
1624,
381,
1638,
4592,
1020,
516,
3214,
458,
947,
4575,
1432,
211,
1514,
2926,
1865,
2142,
189,
852,
1221,
1400,
1486,
882,
2299,
4036,
351,
28,
1122,
700,
6479,
6480,
6481,
6482,
6483,
5508,
6484,
3900,
3414,
3974,
4441,
4024,
3537,
4037,
5628,
5099,
3633,
6485,
3148,
6486,
3636,
5509,
3257,
5510,
5973,
5445,
5872,
4941,
4403,
3174,
4627,
5873,
6276,
2286,
4230,
5446,
5874,
5122,
6102,
6103,
4162,
5447,
5123,
5323,
4849,
6277,
3980,
3851,
5066,
4246,
5774,
5067,
6278,
3001,
2807,
5695,
3346,
5775,
5974,
5158,
5448,
6487,
5975,
5976,
5776,
3598,
6279,
5696,
4806,
4211,
4154,
6280,
6488,
6489,
6490,
6281,
4212,
5037,
3374,
4171,
6491,
4562,
4807,
4722,
4827,
5977,
6104,
4532,
4079,
5159,
5324,
5160,
4404,
3858,
5359,
5875,
3975,
4288,
4610,
3486,
4512,
5325,
3893,
5360,
6282,
6283,
5560,
2522,
4231,
5978,
5186,
5449,
2569,
3878,
6284,
5401,
3578,
4415,
6285,
4656,
5124,
5979,
2506,
4247,
4449,
3219,
3417,
4334,
4969,
4329,
6492,
4576,
4828,
4172,
4416,
4829,
5402,
6286,
3927,
3852,
5361,
4369,
4830,
4477,
4867,
5876,
4173,
6493,
6105,
4657,
6287,
6106,
5877,
5450,
6494,
4155,
4868,
5451,
3700,
5629,
4384,
6288,
6289,
5878,
3189,
4881,
6107,
6290,
6495,
4513,
6496,
4692,
4515,
4723,
5100,
3356,
6497,
6291,
3810,
4080,
5561,
3570,
4430,
5980,
6498,
4355,
5697,
6499,
4724,
6108,
6109,
3764,
4050,
5038,
5879,
4093,
3226,
6292,
5068,
5217,
4693,
3342,
5630,
3504,
4831,
4377,
4466,
4309,
5698,
4431,
5777,
6293,
5778,
4272,
3706,
6110,
5326,
3752,
4676,
5327,
4273,
5403,
4767,
5631,
6500,
5699,
5880,
3475,
5039,
6294,
5562,
5125,
4348,
4301,
4482,
4068,
5126,
4593,
5700,
3380,
3462,
5981,
5563,
3824,
5404,
4970,
5511,
3825,
4738,
6295,
6501,
5452,
4516,
6111,
5881,
5564,
6502,
6296,
5982,
6503,
4213,
4163,
3454,
6504,
6112,
4009,
4450,
6113,
4658,
6297,
6114,
3035,
6505,
6115,
3995,
4904,
4739,
4563,
4942,
4110,
5040,
3661,
3928,
5362,
3674,
6506,
5292,
3612,
4791,
5565,
4149,
5983,
5328,
5259,
5021,
4725,
4577,
4564,
4517,
4364,
6298,
5405,
4578,
5260,
4594,
4156,
4157,
5453,
3592,
3491,
6507,
5127,
5512,
4709,
4922,
5984,
5701,
4726,
4289,
6508,
4015,
6116,
5128,
4628,
3424,
4241,
5779,
6299,
4905,
6509,
6510,
5454,
5702,
5780,
6300,
4365,
4923,
3971,
6511,
5161,
3270,
3158,
5985,
4100,
867,
5129,
5703,
6117,
5363,
3695,
3301,
5513,
4467,
6118,
6512,
5455,
4232,
4242,
4629,
6513,
3959,
4478,
6514,
5514,
5329,
5986,
4850,
5162,
5566,
3846,
4694,
6119,
5456,
4869,
5781,
3779,
6301,
5704,
5987,
5515,
4710,
6302,
5882,
6120,
4392,
5364,
5705,
6515,
6121,
6516,
6517,
3736,
5988,
5457,
5989,
4695,
2457,
5883,
4551,
5782,
6303,
6304,
6305,
5130,
4971,
6122,
5163,
6123,
4870,
3263,
5365,
3150,
4871,
6518,
6306,
5783,
5069,
5706,
3513,
3498,
4409,
5330,
5632,
5366,
5458,
5459,
3991,
5990,
4502,
3324,
5991,
5784,
3696,
4518,
5633,
4119,
6519,
4630,
5634,
4417,
5707,
4832,
5992,
3418,
6124,
5993,
5567,
4768,
5218,
6520,
4595,
3458,
5367,
6125,
5635,
6126,
4202,
6521,
4740,
4924,
6307,
3981,
4069,
4385,
6308,
3883,
2675,
4051,
3834,
4302,
4483,
5568,
5994,
4972,
4101,
5368,
6309,
5164,
5884,
3922,
6127,
6522,
6523,
5261,
5460,
5187,
4164,
5219,
3538,
5516,
4111,
3524,
5995,
6310,
6311,
5369,
3181,
3386,
2484,
5188,
3464,
5569,
3627,
5708,
6524,
5406,
5165,
4677,
4492,
6312,
4872,
4851,
5885,
4468,
5996,
6313,
5709,
5710,
6128,
2470,
5886,
6314,
5293,
4882,
5785,
3325,
5461,
5101,
6129,
5711,
5786,
6525,
4906,
6526,
6527,
4418,
5887,
5712,
4808,
2907,
3701,
5713,
5888,
6528,
3765,
5636,
5331,
6529,
6530,
3593,
5889,
3637,
4943,
3692,
5714,
5787,
4925,
6315,
6130,
5462,
4405,
6131,
6132,
6316,
5262,
6531,
6532,
5715,
3859,
5716,
5070,
4696,
5102,
3929,
5788,
3987,
4792,
5997,
6533,
6534,
3920,
4809,
5e3,
5998,
6535,
2974,
5370,
6317,
5189,
5263,
5717,
3826,
6536,
3953,
5001,
4883,
3190,
5463,
5890,
4973,
5999,
4741,
6133,
6134,
3607,
5570,
6e3,
4711,
3362,
3630,
4552,
5041,
6318,
6001,
2950,
2953,
5637,
4646,
5371,
4944,
6002,
2044,
4120,
3429,
6319,
6537,
5103,
4833,
6538,
6539,
4884,
4647,
3884,
6003,
6004,
4758,
3835,
5220,
5789,
4565,
5407,
6540,
6135,
5294,
4697,
4852,
6320,
6321,
3206,
4907,
6541,
6322,
4945,
6542,
6136,
6543,
6323,
6005,
4631,
3519,
6544,
5891,
6545,
5464,
3784,
5221,
6546,
5571,
4659,
6547,
6324,
6137,
5190,
6548,
3853,
6549,
4016,
4834,
3954,
6138,
5332,
3827,
4017,
3210,
3546,
4469,
5408,
5718,
3505,
4648,
5790,
5131,
5638,
5791,
5465,
4727,
4318,
6325,
6326,
5792,
4553,
4010,
4698,
3439,
4974,
3638,
4335,
3085,
6006,
5104,
5042,
5166,
5892,
5572,
6327,
4356,
4519,
5222,
5573,
5333,
5793,
5043,
6550,
5639,
5071,
4503,
6328,
6139,
6551,
6140,
3914,
3901,
5372,
6007,
5640,
4728,
4793,
3976,
3836,
4885,
6552,
4127,
6553,
4451,
4102,
5002,
6554,
3686,
5105,
6555,
5191,
5072,
5295,
4611,
5794,
5296,
6556,
5893,
5264,
5894,
4975,
5466,
5265,
4699,
4976,
4370,
4056,
3492,
5044,
4886,
6557,
5795,
4432,
4769,
4357,
5467,
3940,
4660,
4290,
6141,
4484,
4770,
4661,
3992,
6329,
4025,
4662,
5022,
4632,
4835,
4070,
5297,
4663,
4596,
5574,
5132,
5409,
5895,
6142,
4504,
5192,
4664,
5796,
5896,
3885,
5575,
5797,
5023,
4810,
5798,
3732,
5223,
4712,
5298,
4084,
5334,
5468,
6143,
4052,
4053,
4336,
4977,
4794,
6558,
5335,
4908,
5576,
5224,
4233,
5024,
4128,
5469,
5225,
4873,
6008,
5045,
4729,
4742,
4633,
3675,
4597,
6559,
5897,
5133,
5577,
5003,
5641,
5719,
6330,
6560,
3017,
2382,
3854,
4406,
4811,
6331,
4393,
3964,
4946,
6561,
2420,
3722,
6562,
4926,
4378,
3247,
1736,
4442,
6332,
5134,
6333,
5226,
3996,
2918,
5470,
4319,
4003,
4598,
4743,
4744,
4485,
3785,
3902,
5167,
5004,
5373,
4394,
5898,
6144,
4874,
1793,
3997,
6334,
4085,
4214,
5106,
5642,
4909,
5799,
6009,
4419,
4189,
3330,
5899,
4165,
4420,
5299,
5720,
5227,
3347,
6145,
4081,
6335,
2876,
3930,
6146,
3293,
3786,
3910,
3998,
5900,
5300,
5578,
2840,
6563,
5901,
5579,
6147,
3531,
5374,
6564,
6565,
5580,
4759,
5375,
6566,
6148,
3559,
5643,
6336,
6010,
5517,
6337,
6338,
5721,
5902,
3873,
6011,
6339,
6567,
5518,
3868,
3649,
5722,
6568,
4771,
4947,
6569,
6149,
4812,
6570,
2853,
5471,
6340,
6341,
5644,
4795,
6342,
6012,
5723,
6343,
5724,
6013,
4349,
6344,
3160,
6150,
5193,
4599,
4514,
4493,
5168,
4320,
6345,
4927,
3666,
4745,
5169,
5903,
5005,
4928,
6346,
5725,
6014,
4730,
4203,
5046,
4948,
3395,
5170,
6015,
4150,
6016,
5726,
5519,
6347,
5047,
3550,
6151,
6348,
4197,
4310,
5904,
6571,
5581,
2965,
6152,
4978,
3960,
4291,
5135,
6572,
5301,
5727,
4129,
4026,
5905,
4853,
5728,
5472,
6153,
6349,
4533,
2700,
4505,
5336,
4678,
3583,
5073,
2994,
4486,
3043,
4554,
5520,
6350,
6017,
5800,
4487,
6351,
3931,
4103,
5376,
6352,
4011,
4321,
4311,
4190,
5136,
6018,
3988,
3233,
4350,
5906,
5645,
4198,
6573,
5107,
3432,
4191,
3435,
5582,
6574,
4139,
5410,
6353,
5411,
3944,
5583,
5074,
3198,
6575,
6354,
4358,
6576,
5302,
4600,
5584,
5194,
5412,
6577,
6578,
5585,
5413,
5303,
4248,
5414,
3879,
4433,
6579,
4479,
5025,
4854,
5415,
6355,
4760,
4772,
3683,
2978,
4700,
3797,
4452,
3965,
3932,
3721,
4910,
5801,
6580,
5195,
3551,
5907,
3221,
3471,
3029,
6019,
3999,
5908,
5909,
5266,
5267,
3444,
3023,
3828,
3170,
4796,
5646,
4979,
4259,
6356,
5647,
5337,
3694,
6357,
5648,
5338,
4520,
4322,
5802,
3031,
3759,
4071,
6020,
5586,
4836,
4386,
5048,
6581,
3571,
4679,
4174,
4949,
6154,
4813,
3787,
3402,
3822,
3958,
3215,
3552,
5268,
4387,
3933,
4950,
4359,
6021,
5910,
5075,
3579,
6358,
4234,
4566,
5521,
6359,
3613,
5049,
6022,
5911,
3375,
3702,
3178,
4911,
5339,
4521,
6582,
6583,
4395,
3087,
3811,
5377,
6023,
6360,
6155,
4027,
5171,
5649,
4421,
4249,
2804,
6584,
2270,
6585,
4e3,
4235,
3045,
6156,
5137,
5729,
4140,
4312,
3886,
6361,
4330,
6157,
4215,
6158,
3500,
3676,
4929,
4331,
3713,
4930,
5912,
4265,
3776,
3368,
5587,
4470,
4855,
3038,
4980,
3631,
6159,
6160,
4132,
4680,
6161,
6362,
3923,
4379,
5588,
4255,
6586,
4121,
6587,
6363,
4649,
6364,
3288,
4773,
4774,
6162,
6024,
6365,
3543,
6588,
4274,
3107,
3737,
5050,
5803,
4797,
4522,
5589,
5051,
5730,
3714,
4887,
5378,
4001,
4523,
6163,
5026,
5522,
4701,
4175,
2791,
3760,
6589,
5473,
4224,
4133,
3847,
4814,
4815,
4775,
3259,
5416,
6590,
2738,
6164,
6025,
5304,
3733,
5076,
5650,
4816,
5590,
6591,
6165,
6592,
3934,
5269,
6593,
3396,
5340,
6594,
5804,
3445,
3602,
4042,
4488,
5731,
5732,
3525,
5591,
4601,
5196,
6166,
6026,
5172,
3642,
4612,
3202,
4506,
4798,
6366,
3818,
5108,
4303,
5138,
5139,
4776,
3332,
4304,
2915,
3415,
4434,
5077,
5109,
4856,
2879,
5305,
4817,
6595,
5913,
3104,
3144,
3903,
4634,
5341,
3133,
5110,
5651,
5805,
6167,
4057,
5592,
2945,
4371,
5593,
6596,
3474,
4182,
6367,
6597,
6168,
4507,
4279,
6598,
2822,
6599,
4777,
4713,
5594,
3829,
6169,
3887,
5417,
6170,
3653,
5474,
6368,
4216,
2971,
5228,
3790,
4579,
6369,
5733,
6600,
6601,
4951,
4746,
4555,
6602,
5418,
5475,
6027,
3400,
4665,
5806,
6171,
4799,
6028,
5052,
6172,
3343,
4800,
4747,
5006,
6370,
4556,
4217,
5476,
4396,
5229,
5379,
5477,
3839,
5914,
5652,
5807,
4714,
3068,
4635,
5808,
6173,
5342,
4192,
5078,
5419,
5523,
5734,
6174,
4557,
6175,
4602,
6371,
6176,
6603,
5809,
6372,
5735,
4260,
3869,
5111,
5230,
6029,
5112,
6177,
3126,
4681,
5524,
5915,
2706,
3563,
4748,
3130,
6178,
4018,
5525,
6604,
6605,
5478,
4012,
4837,
6606,
4534,
4193,
5810,
4857,
3615,
5479,
6030,
4082,
3697,
3539,
4086,
5270,
3662,
4508,
4931,
5916,
4912,
5811,
5027,
3888,
6607,
4397,
3527,
3302,
3798,
2775,
2921,
2637,
3966,
4122,
4388,
4028,
4054,
1633,
4858,
5079,
3024,
5007,
3982,
3412,
5736,
6608,
3426,
3236,
5595,
3030,
6179,
3427,
3336,
3279,
3110,
6373,
3874,
3039,
5080,
5917,
5140,
4489,
3119,
6374,
5812,
3405,
4494,
6031,
4666,
4141,
6180,
4166,
6032,
5813,
4981,
6609,
5081,
4422,
4982,
4112,
3915,
5653,
3296,
3983,
6375,
4266,
4410,
5654,
6610,
6181,
3436,
5082,
6611,
5380,
6033,
3819,
5596,
4535,
5231,
5306,
5113,
6612,
4952,
5918,
4275,
3113,
6613,
6376,
6182,
6183,
5814,
3073,
4731,
4838,
5008,
3831,
6614,
4888,
3090,
3848,
4280,
5526,
5232,
3014,
5655,
5009,
5737,
5420,
5527,
6615,
5815,
5343,
5173,
5381,
4818,
6616,
3151,
4953,
6617,
5738,
2796,
3204,
4360,
2989,
4281,
5739,
5174,
5421,
5197,
3132,
5141,
3849,
5142,
5528,
5083,
3799,
3904,
4839,
5480,
2880,
4495,
3448,
6377,
6184,
5271,
5919,
3771,
3193,
6034,
6035,
5920,
5010,
6036,
5597,
6037,
6378,
6038,
3106,
5422,
6618,
5423,
5424,
4142,
6619,
4889,
5084,
4890,
4313,
5740,
6620,
3437,
5175,
5307,
5816,
4199,
5198,
5529,
5817,
5199,
5656,
4913,
5028,
5344,
3850,
6185,
2955,
5272,
5011,
5818,
4567,
4580,
5029,
5921,
3616,
5233,
6621,
6622,
6186,
4176,
6039,
6379,
6380,
3352,
5200,
5273,
2908,
5598,
5234,
3837,
5308,
6623,
6624,
5819,
4496,
4323,
5309,
5201,
6625,
6626,
4983,
3194,
3838,
4167,
5530,
5922,
5274,
6381,
6382,
3860,
3861,
5599,
3333,
4292,
4509,
6383,
3553,
5481,
5820,
5531,
4778,
6187,
3955,
3956,
4324,
4389,
4218,
3945,
4325,
3397,
2681,
5923,
4779,
5085,
4019,
5482,
4891,
5382,
5383,
6040,
4682,
3425,
5275,
4094,
6627,
5310,
3015,
5483,
5657,
4398,
5924,
3168,
4819,
6628,
5925,
6629,
5532,
4932,
4613,
6041,
6630,
4636,
6384,
4780,
4204,
5658,
4423,
5821,
3989,
4683,
5822,
6385,
4954,
6631,
5345,
6188,
5425,
5012,
5384,
3894,
6386,
4490,
4104,
6632,
5741,
5053,
6633,
5823,
5926,
5659,
5660,
5927,
6634,
5235,
5742,
5824,
4840,
4933,
4820,
6387,
4859,
5928,
4955,
6388,
4143,
3584,
5825,
5346,
5013,
6635,
5661,
6389,
5014,
5484,
5743,
4337,
5176,
5662,
6390,
2836,
6391,
3268,
6392,
6636,
6042,
5236,
6637,
4158,
6638,
5744,
5663,
4471,
5347,
3663,
4123,
5143,
4293,
3895,
6639,
6640,
5311,
5929,
5826,
3800,
6189,
6393,
6190,
5664,
5348,
3554,
3594,
4749,
4603,
6641,
5385,
4801,
6043,
5827,
4183,
6642,
5312,
5426,
4761,
6394,
5665,
6191,
4715,
2669,
6643,
6644,
5533,
3185,
5427,
5086,
5930,
5931,
5386,
6192,
6044,
6645,
4781,
4013,
5745,
4282,
4435,
5534,
4390,
4267,
6045,
5746,
4984,
6046,
2743,
6193,
3501,
4087,
5485,
5932,
5428,
4184,
4095,
5747,
4061,
5054,
3058,
3862,
5933,
5600,
6646,
5144,
3618,
6395,
3131,
5055,
5313,
6396,
4650,
4956,
3855,
6194,
3896,
5202,
4985,
4029,
4225,
6195,
6647,
5828,
5486,
5829,
3589,
3002,
6648,
6397,
4782,
5276,
6649,
6196,
6650,
4105,
3803,
4043,
5237,
5830,
6398,
4096,
3643,
6399,
3528,
6651,
4453,
3315,
4637,
6652,
3984,
6197,
5535,
3182,
3339,
6653,
3096,
2660,
6400,
6654,
3449,
5934,
4250,
4236,
6047,
6401,
5831,
6655,
5487,
3753,
4062,
5832,
6198,
6199,
6656,
3766,
6657,
3403,
4667,
6048,
6658,
4338,
2897,
5833,
3880,
2797,
3780,
4326,
6659,
5748,
5015,
6660,
5387,
4351,
5601,
4411,
6661,
3654,
4424,
5935,
4339,
4072,
5277,
4568,
5536,
6402,
6662,
5238,
6663,
5349,
5203,
6200,
5204,
6201,
5145,
4536,
5016,
5056,
4762,
5834,
4399,
4957,
6202,
6403,
5666,
5749,
6664,
4340,
6665,
5936,
5177,
5667,
6666,
6667,
3459,
4668,
6404,
6668,
6669,
4543,
6203,
6670,
4276,
6405,
4480,
5537,
6671,
4614,
5205,
5668,
6672,
3348,
2193,
4763,
6406,
6204,
5937,
5602,
4177,
5669,
3419,
6673,
4020,
6205,
4443,
4569,
5388,
3715,
3639,
6407,
6049,
4058,
6206,
6674,
5938,
4544,
6050,
4185,
4294,
4841,
4651,
4615,
5488,
6207,
6408,
6051,
5178,
3241,
3509,
5835,
6208,
4958,
5836,
4341,
5489,
5278,
6209,
2823,
5538,
5350,
5206,
5429,
6675,
4638,
4875,
4073,
3516,
4684,
4914,
4860,
5939,
5603,
5389,
6052,
5057,
3237,
5490,
3791,
6676,
6409,
6677,
4821,
4915,
4106,
5351,
5058,
4243,
5539,
4244,
5604,
4842,
4916,
5239,
3028,
3716,
5837,
5114,
5605,
5390,
5940,
5430,
6210,
4332,
6678,
5540,
4732,
3667,
3840,
6053,
4305,
3408,
5670,
5541,
6410,
2744,
5240,
5750,
6679,
3234,
5606,
6680,
5607,
5671,
3608,
4283,
4159,
4400,
5352,
4783,
6681,
6411,
6682,
4491,
4802,
6211,
6412,
5941,
6413,
6414,
5542,
5751,
6683,
4669,
3734,
5942,
6684,
6415,
5943,
5059,
3328,
4670,
4144,
4268,
6685,
6686,
6687,
6688,
4372,
3603,
6689,
5944,
5491,
4373,
3440,
6416,
5543,
4784,
4822,
5608,
3792,
4616,
5838,
5672,
3514,
5391,
6417,
4892,
6690,
4639,
6691,
6054,
5673,
5839,
6055,
6692,
6056,
5392,
6212,
4038,
5544,
5674,
4497,
6057,
6693,
5840,
4284,
5675,
4021,
4545,
5609,
6418,
4454,
6419,
6213,
4113,
4472,
5314,
3738,
5087,
5279,
4074,
5610,
4959,
4063,
3179,
4750,
6058,
6420,
6214,
3476,
4498,
4716,
5431,
4960,
4685,
6215,
5241,
6694,
6421,
6216,
6695,
5841,
5945,
6422,
3748,
5946,
5179,
3905,
5752,
5545,
5947,
4374,
6217,
4455,
6423,
4412,
6218,
4803,
5353,
6696,
3832,
5280,
6219,
4327,
4702,
6220,
6221,
6059,
4652,
5432,
6424,
3749,
4751,
6425,
5753,
4986,
5393,
4917,
5948,
5030,
5754,
4861,
4733,
6426,
4703,
6697,
6222,
4671,
5949,
4546,
4961,
5180,
6223,
5031,
3316,
5281,
6698,
4862,
4295,
4934,
5207,
3644,
6427,
5842,
5950,
6428,
6429,
4570,
5843,
5282,
6430,
6224,
5088,
3239,
6060,
6699,
5844,
5755,
6061,
6431,
2701,
5546,
6432,
5115,
5676,
4039,
3993,
3327,
4752,
4425,
5315,
6433,
3941,
6434,
5677,
4617,
4604,
3074,
4581,
6225,
5433,
6435,
6226,
6062,
4823,
5756,
5116,
6227,
3717,
5678,
4717,
5845,
6436,
5679,
5846,
6063,
5847,
6064,
3977,
3354,
6437,
3863,
5117,
6228,
5547,
5394,
4499,
4524,
6229,
4605,
6230,
4306,
4500,
6700,
5951,
6065,
3693,
5952,
5089,
4366,
4918,
6701,
6231,
5548,
6232,
6702,
6438,
4704,
5434,
6703,
6704,
5953,
4168,
6705,
5680,
3420,
6706,
5242,
4407,
6066,
3812,
5757,
5090,
5954,
4672,
4525,
3481,
5681,
4618,
5395,
5354,
5316,
5955,
6439,
4962,
6707,
4526,
6440,
3465,
4673,
6067,
6441,
5682,
6708,
5435,
5492,
5758,
5683,
4619,
4571,
4674,
4804,
4893,
4686,
5493,
4753,
6233,
6068,
4269,
6442,
6234,
5032,
4705,
5146,
5243,
5208,
5848,
6235,
6443,
4963,
5033,
4640,
4226,
6236,
5849,
3387,
6444,
6445,
4436,
4437,
5850,
4843,
5494,
4785,
4894,
6709,
4361,
6710,
5091,
5956,
3331,
6237,
4987,
5549,
6069,
6711,
4342,
3517,
4473,
5317,
6070,
6712,
6071,
4706,
6446,
5017,
5355,
6713,
6714,
4988,
5436,
6447,
4734,
5759,
6715,
4735,
4547,
4456,
4754,
6448,
5851,
6449,
6450,
3547,
5852,
5318,
6451,
6452,
5092,
4205,
6716,
6238,
4620,
4219,
5611,
6239,
6072,
4481,
5760,
5957,
5958,
4059,
6240,
6453,
4227,
4537,
6241,
5761,
4030,
4186,
5244,
5209,
3761,
4457,
4876,
3337,
5495,
5181,
6242,
5959,
5319,
5612,
5684,
5853,
3493,
5854,
6073,
4169,
5613,
5147,
4895,
6074,
5210,
6717,
5182,
6718,
3830,
6243,
2798,
3841,
6075,
6244,
5855,
5614,
3604,
4606,
5496,
5685,
5118,
5356,
6719,
6454,
5960,
5357,
5961,
6720,
4145,
3935,
4621,
5119,
5962,
4261,
6721,
6455,
4786,
5963,
4375,
4582,
6245,
6246,
6247,
6076,
5437,
4877,
5856,
3376,
4380,
6248,
4160,
6722,
5148,
6456,
5211,
6457,
6723,
4718,
6458,
6724,
6249,
5358,
4044,
3297,
6459,
6250,
5857,
5615,
5497,
5245,
6460,
5498,
6725,
6251,
6252,
5550,
3793,
5499,
2959,
5396,
6461,
6462,
4572,
5093,
5500,
5964,
3806,
4146,
6463,
4426,
5762,
5858,
6077,
6253,
4755,
3967,
4220,
5965,
6254,
4989,
5501,
6464,
4352,
6726,
6078,
4764,
2290,
5246,
3906,
5438,
5283,
3767,
4964,
2861,
5763,
5094,
6255,
6256,
4622,
5616,
5859,
5860,
4707,
6727,
4285,
4708,
4824,
5617,
6257,
5551,
4787,
5212,
4965,
4935,
4687,
6465,
6728,
6466,
5686,
6079,
3494,
4413,
2995,
5247,
5966,
5618,
6729,
5967,
5764,
5765,
5687,
5502,
6730,
6731,
6080,
5397,
6467,
4990,
6258,
6732,
4538,
5060,
5619,
6733,
4719,
5688,
5439,
5018,
5149,
5284,
5503,
6734,
6081,
4607,
6259,
5120,
3645,
5861,
4583,
6260,
4584,
4675,
5620,
4098,
5440,
6261,
4863,
2379,
3306,
4585,
5552,
5689,
4586,
5285,
6735,
4864,
6736,
5286,
6082,
6737,
4623,
3010,
4788,
4381,
4558,
5621,
4587,
4896,
3698,
3161,
5248,
4353,
4045,
6262,
3754,
5183,
4588,
6738,
6263,
6739,
6740,
5622,
3936,
6741,
6468,
6742,
6264,
5095,
6469,
4991,
5968,
6743,
4992,
6744,
6083,
4897,
6745,
4256,
5766,
4307,
3108,
3968,
4444,
5287,
3889,
4343,
6084,
4510,
6085,
4559,
6086,
4898,
5969,
6746,
5623,
5061,
4919,
5249,
5250,
5504,
5441,
6265,
5320,
4878,
3242,
5862,
5251,
3428,
6087,
6747,
4237,
5624,
5442,
6266,
5553,
4539,
6748,
2585,
3533,
5398,
4262,
6088,
5150,
4736,
4438,
6089,
6267,
5505,
4966,
6749,
6268,
6750,
6269,
5288,
5554,
3650,
6090,
6091,
4624,
6092,
5690,
6751,
5863,
4270,
5691,
4277,
5555,
5864,
6752,
5692,
4720,
4865,
6470,
5151,
4688,
4825,
6753,
3094,
6754,
6471,
3235,
4653,
6755,
5213,
5399,
6756,
3201,
4589,
5865,
4967,
6472,
5866,
6473,
5019,
3016,
6757,
5321,
4756,
3957,
4573,
6093,
4993,
5767,
4721,
6474,
6758,
5625,
6759,
4458,
6475,
6270,
6760,
5556,
4994,
5214,
5252,
6271,
3875,
5768,
6094,
5034,
5506,
4376,
5769,
6761,
2120,
6476,
5253,
5770,
6762,
5771,
5970,
3990,
5971,
5557,
5558,
5772,
6477,
6095,
2787,
4641,
5972,
5121,
6096,
6097,
6272,
6763,
3703,
5867,
5507,
6273,
4206,
6274,
4789,
6098,
6764,
3619,
3646,
3833,
3804,
2394,
3788,
4936,
3978,
4866,
4899,
6099,
6100,
5559,
6478,
6765,
3599,
5868,
6101,
5869,
5870,
6275,
6766,
4527,
6767
];
}
});
// node_modules/jschardet/src/big5freq.js
var require_big5freq = __commonJS({
"node_modules/jschardet/src/big5freq.js"(exports) {
exports.BIG5_TYPICAL_DISTRIBUTION_RATIO = 0.75;
exports.BIG5_TABLE_SIZE = 5376;
exports.Big5CharToFreqOrder = [
1,
1801,
1506,
255,
1431,
198,
9,
82,
6,
5008,
177,
202,
3681,
1256,
2821,
110,
3814,
33,
3274,
261,
76,
44,
2114,
16,
2946,
2187,
1176,
659,
3971,
26,
3451,
2653,
1198,
3972,
3350,
4202,
410,
2215,
302,
590,
361,
1964,
8,
204,
58,
4510,
5009,
1932,
63,
5010,
5011,
317,
1614,
75,
222,
159,
4203,
2417,
1480,
5012,
3555,
3091,
224,
2822,
3682,
3,
10,
3973,
1471,
29,
2787,
1135,
2866,
1940,
873,
130,
3275,
1123,
312,
5013,
4511,
2052,
507,
252,
682,
5014,
142,
1915,
124,
206,
2947,
34,
3556,
3204,
64,
604,
5015,
2501,
1977,
1978,
155,
1991,
645,
641,
1606,
5016,
3452,
337,
72,
406,
5017,
80,
630,
238,
3205,
1509,
263,
939,
1092,
2654,
756,
1440,
1094,
3453,
449,
69,
2987,
591,
179,
2096,
471,
115,
2035,
1844,
60,
50,
2988,
134,
806,
1869,
734,
2036,
3454,
180,
995,
1607,
156,
537,
2907,
688,
5018,
319,
1305,
779,
2145,
514,
2379,
298,
4512,
359,
2502,
90,
2716,
1338,
663,
11,
906,
1099,
2553,
20,
2441,
182,
532,
1716,
5019,
732,
1376,
4204,
1311,
1420,
3206,
25,
2317,
1056,
113,
399,
382,
1950,
242,
3455,
2474,
529,
3276,
475,
1447,
3683,
5020,
117,
21,
656,
810,
1297,
2300,
2334,
3557,
5021,
126,
4205,
706,
456,
150,
613,
4513,
71,
1118,
2037,
4206,
145,
3092,
85,
835,
486,
2115,
1246,
1426,
428,
727,
1285,
1015,
800,
106,
623,
303,
1281,
5022,
2128,
2359,
347,
3815,
221,
3558,
3135,
5023,
1956,
1153,
4207,
83,
296,
1199,
3093,
192,
624,
93,
5024,
822,
1898,
2823,
3136,
795,
2065,
991,
1554,
1542,
1592,
27,
43,
2867,
859,
139,
1456,
860,
4514,
437,
712,
3974,
164,
2397,
3137,
695,
211,
3037,
2097,
195,
3975,
1608,
3559,
3560,
3684,
3976,
234,
811,
2989,
2098,
3977,
2233,
1441,
3561,
1615,
2380,
668,
2077,
1638,
305,
228,
1664,
4515,
467,
415,
5025,
262,
2099,
1593,
239,
108,
300,
200,
1033,
512,
1247,
2078,
5026,
5027,
2176,
3207,
3685,
2682,
593,
845,
1062,
3277,
88,
1723,
2038,
3978,
1951,
212,
266,
152,
149,
468,
1899,
4208,
4516,
77,
187,
5028,
3038,
37,
5,
2990,
5029,
3979,
5030,
5031,
39,
2524,
4517,
2908,
3208,
2079,
55,
148,
74,
4518,
545,
483,
1474,
1029,
1665,
217,
1870,
1531,
3138,
1104,
2655,
4209,
24,
172,
3562,
900,
3980,
3563,
3564,
4519,
32,
1408,
2824,
1312,
329,
487,
2360,
2251,
2717,
784,
2683,
4,
3039,
3351,
1427,
1789,
188,
109,
499,
5032,
3686,
1717,
1790,
888,
1217,
3040,
4520,
5033,
3565,
5034,
3352,
1520,
3687,
3981,
196,
1034,
775,
5035,
5036,
929,
1816,
249,
439,
38,
5037,
1063,
5038,
794,
3982,
1435,
2301,
46,
178,
3278,
2066,
5039,
2381,
5040,
214,
1709,
4521,
804,
35,
707,
324,
3688,
1601,
2554,
140,
459,
4210,
5041,
5042,
1365,
839,
272,
978,
2262,
2580,
3456,
2129,
1363,
3689,
1423,
697,
100,
3094,
48,
70,
1231,
495,
3139,
2196,
5043,
1294,
5044,
2080,
462,
586,
1042,
3279,
853,
256,
988,
185,
2382,
3457,
1698,
434,
1084,
5045,
3458,
314,
2625,
2788,
4522,
2335,
2336,
569,
2285,
637,
1817,
2525,
757,
1162,
1879,
1616,
3459,
287,
1577,
2116,
768,
4523,
1671,
2868,
3566,
2526,
1321,
3816,
909,
2418,
5046,
4211,
933,
3817,
4212,
2053,
2361,
1222,
4524,
765,
2419,
1322,
786,
4525,
5047,
1920,
1462,
1677,
2909,
1699,
5048,
4526,
1424,
2442,
3140,
3690,
2600,
3353,
1775,
1941,
3460,
3983,
4213,
309,
1369,
1130,
2825,
364,
2234,
1653,
1299,
3984,
3567,
3985,
3986,
2656,
525,
1085,
3041,
902,
2001,
1475,
964,
4527,
421,
1845,
1415,
1057,
2286,
940,
1364,
3141,
376,
4528,
4529,
1381,
7,
2527,
983,
2383,
336,
1710,
2684,
1846,
321,
3461,
559,
1131,
3042,
2752,
1809,
1132,
1313,
265,
1481,
1858,
5049,
352,
1203,
2826,
3280,
167,
1089,
420,
2827,
776,
792,
1724,
3568,
4214,
2443,
3281,
5050,
4215,
5051,
446,
229,
333,
2753,
901,
3818,
1200,
1557,
4530,
2657,
1921,
395,
2754,
2685,
3819,
4216,
1836,
125,
916,
3209,
2626,
4531,
5052,
5053,
3820,
5054,
5055,
5056,
4532,
3142,
3691,
1133,
2555,
1757,
3462,
1510,
2318,
1409,
3569,
5057,
2146,
438,
2601,
2910,
2384,
3354,
1068,
958,
3043,
461,
311,
2869,
2686,
4217,
1916,
3210,
4218,
1979,
383,
750,
2755,
2627,
4219,
274,
539,
385,
1278,
1442,
5058,
1154,
1965,
384,
561,
210,
98,
1295,
2556,
3570,
5059,
1711,
2420,
1482,
3463,
3987,
2911,
1257,
129,
5060,
3821,
642,
523,
2789,
2790,
2658,
5061,
141,
2235,
1333,
68,
176,
441,
876,
907,
4220,
603,
2602,
710,
171,
3464,
404,
549,
18,
3143,
2398,
1410,
3692,
1666,
5062,
3571,
4533,
2912,
4534,
5063,
2991,
368,
5064,
146,
366,
99,
871,
3693,
1543,
748,
807,
1586,
1185,
22,
2263,
379,
3822,
3211,
5065,
3212,
505,
1942,
2628,
1992,
1382,
2319,
5066,
380,
2362,
218,
702,
1818,
1248,
3465,
3044,
3572,
3355,
3282,
5067,
2992,
3694,
930,
3283,
3823,
5068,
59,
5069,
585,
601,
4221,
497,
3466,
1112,
1314,
4535,
1802,
5070,
1223,
1472,
2177,
5071,
749,
1837,
690,
1900,
3824,
1773,
3988,
1476,
429,
1043,
1791,
2236,
2117,
917,
4222,
447,
1086,
1629,
5072,
556,
5073,
5074,
2021,
1654,
844,
1090,
105,
550,
966,
1758,
2828,
1008,
1783,
686,
1095,
5075,
2287,
793,
1602,
5076,
3573,
2603,
4536,
4223,
2948,
2302,
4537,
3825,
980,
2503,
544,
353,
527,
4538,
908,
2687,
2913,
5077,
381,
2629,
1943,
1348,
5078,
1341,
1252,
560,
3095,
5079,
3467,
2870,
5080,
2054,
973,
886,
2081,
143,
4539,
5081,
5082,
157,
3989,
496,
4224,
57,
840,
540,
2039,
4540,
4541,
3468,
2118,
1445,
970,
2264,
1748,
1966,
2082,
4225,
3144,
1234,
1776,
3284,
2829,
3695,
773,
1206,
2130,
1066,
2040,
1326,
3990,
1738,
1725,
4226,
279,
3145,
51,
1544,
2604,
423,
1578,
2131,
2067,
173,
4542,
1880,
5083,
5084,
1583,
264,
610,
3696,
4543,
2444,
280,
154,
5085,
5086,
5087,
1739,
338,
1282,
3096,
693,
2871,
1411,
1074,
3826,
2445,
5088,
4544,
5089,
5090,
1240,
952,
2399,
5091,
2914,
1538,
2688,
685,
1483,
4227,
2475,
1436,
953,
4228,
2055,
4545,
671,
2400,
79,
4229,
2446,
3285,
608,
567,
2689,
3469,
4230,
4231,
1691,
393,
1261,
1792,
2401,
5092,
4546,
5093,
5094,
5095,
5096,
1383,
1672,
3827,
3213,
1464,
522,
1119,
661,
1150,
216,
675,
4547,
3991,
1432,
3574,
609,
4548,
2690,
2402,
5097,
5098,
5099,
4232,
3045,
0,
5100,
2476,
315,
231,
2447,
301,
3356,
4549,
2385,
5101,
233,
4233,
3697,
1819,
4550,
4551,
5102,
96,
1777,
1315,
2083,
5103,
257,
5104,
1810,
3698,
2718,
1139,
1820,
4234,
2022,
1124,
2164,
2791,
1778,
2659,
5105,
3097,
363,
1655,
3214,
5106,
2993,
5107,
5108,
5109,
3992,
1567,
3993,
718,
103,
3215,
849,
1443,
341,
3357,
2949,
1484,
5110,
1712,
127,
67,
339,
4235,
2403,
679,
1412,
821,
5111,
5112,
834,
738,
351,
2994,
2147,
846,
235,
1497,
1881,
418,
1993,
3828,
2719,
186,
1100,
2148,
2756,
3575,
1545,
1355,
2950,
2872,
1377,
583,
3994,
4236,
2581,
2995,
5113,
1298,
3699,
1078,
2557,
3700,
2363,
78,
3829,
3830,
267,
1289,
2100,
2002,
1594,
4237,
348,
369,
1274,
2197,
2178,
1838,
4552,
1821,
2830,
3701,
2757,
2288,
2003,
4553,
2951,
2758,
144,
3358,
882,
4554,
3995,
2759,
3470,
4555,
2915,
5114,
4238,
1726,
320,
5115,
3996,
3046,
788,
2996,
5116,
2831,
1774,
1327,
2873,
3997,
2832,
5117,
1306,
4556,
2004,
1700,
3831,
3576,
2364,
2660,
787,
2023,
506,
824,
3702,
534,
323,
4557,
1044,
3359,
2024,
1901,
946,
3471,
5118,
1779,
1500,
1678,
5119,
1882,
4558,
165,
243,
4559,
3703,
2528,
123,
683,
4239,
764,
4560,
36,
3998,
1793,
589,
2916,
816,
626,
1667,
3047,
2237,
1639,
1555,
1622,
3832,
3999,
5120,
4e3,
2874,
1370,
1228,
1933,
891,
2084,
2917,
304,
4240,
5121,
292,
2997,
2720,
3577,
691,
2101,
4241,
1115,
4561,
118,
662,
5122,
611,
1156,
854,
2386,
1316,
2875,
2,
386,
515,
2918,
5123,
5124,
3286,
868,
2238,
1486,
855,
2661,
785,
2216,
3048,
5125,
1040,
3216,
3578,
5126,
3146,
448,
5127,
1525,
5128,
2165,
4562,
5129,
3833,
5130,
4242,
2833,
3579,
3147,
503,
818,
4001,
3148,
1568,
814,
676,
1444,
306,
1749,
5131,
3834,
1416,
1030,
197,
1428,
805,
2834,
1501,
4563,
5132,
5133,
5134,
1994,
5135,
4564,
5136,
5137,
2198,
13,
2792,
3704,
2998,
3149,
1229,
1917,
5138,
3835,
2132,
5139,
4243,
4565,
2404,
3580,
5140,
2217,
1511,
1727,
1120,
5141,
5142,
646,
3836,
2448,
307,
5143,
5144,
1595,
3217,
5145,
5146,
5147,
3705,
1113,
1356,
4002,
1465,
2529,
2530,
5148,
519,
5149,
128,
2133,
92,
2289,
1980,
5150,
4003,
1512,
342,
3150,
2199,
5151,
2793,
2218,
1981,
3360,
4244,
290,
1656,
1317,
789,
827,
2365,
5152,
3837,
4566,
562,
581,
4004,
5153,
401,
4567,
2252,
94,
4568,
5154,
1399,
2794,
5155,
1463,
2025,
4569,
3218,
1944,
5156,
828,
1105,
4245,
1262,
1394,
5157,
4246,
605,
4570,
5158,
1784,
2876,
5159,
2835,
819,
2102,
578,
2200,
2952,
5160,
1502,
436,
3287,
4247,
3288,
2836,
4005,
2919,
3472,
3473,
5161,
2721,
2320,
5162,
5163,
2337,
2068,
23,
4571,
193,
826,
3838,
2103,
699,
1630,
4248,
3098,
390,
1794,
1064,
3581,
5164,
1579,
3099,
3100,
1400,
5165,
4249,
1839,
1640,
2877,
5166,
4572,
4573,
137,
4250,
598,
3101,
1967,
780,
104,
974,
2953,
5167,
278,
899,
253,
402,
572,
504,
493,
1339,
5168,
4006,
1275,
4574,
2582,
2558,
5169,
3706,
3049,
3102,
2253,
565,
1334,
2722,
863,
41,
5170,
5171,
4575,
5172,
1657,
2338,
19,
463,
2760,
4251,
606,
5173,
2999,
3289,
1087,
2085,
1323,
2662,
3e3,
5174,
1631,
1623,
1750,
4252,
2691,
5175,
2878,
791,
2723,
2663,
2339,
232,
2421,
5176,
3001,
1498,
5177,
2664,
2630,
755,
1366,
3707,
3290,
3151,
2026,
1609,
119,
1918,
3474,
862,
1026,
4253,
5178,
4007,
3839,
4576,
4008,
4577,
2265,
1952,
2477,
5179,
1125,
817,
4254,
4255,
4009,
1513,
1766,
2041,
1487,
4256,
3050,
3291,
2837,
3840,
3152,
5180,
5181,
1507,
5182,
2692,
733,
40,
1632,
1106,
2879,
345,
4257,
841,
2531,
230,
4578,
3002,
1847,
3292,
3475,
5183,
1263,
986,
3476,
5184,
735,
879,
254,
1137,
857,
622,
1300,
1180,
1388,
1562,
4010,
4011,
2954,
967,
2761,
2665,
1349,
592,
2134,
1692,
3361,
3003,
1995,
4258,
1679,
4012,
1902,
2188,
5185,
739,
3708,
2724,
1296,
1290,
5186,
4259,
2201,
2202,
1922,
1563,
2605,
2559,
1871,
2762,
3004,
5187,
435,
5188,
343,
1108,
596,
17,
1751,
4579,
2239,
3477,
3709,
5189,
4580,
294,
3582,
2955,
1693,
477,
979,
281,
2042,
3583,
643,
2043,
3710,
2631,
2795,
2266,
1031,
2340,
2135,
2303,
3584,
4581,
367,
1249,
2560,
5190,
3585,
5191,
4582,
1283,
3362,
2005,
240,
1762,
3363,
4583,
4584,
836,
1069,
3153,
474,
5192,
2149,
2532,
268,
3586,
5193,
3219,
1521,
1284,
5194,
1658,
1546,
4260,
5195,
3587,
3588,
5196,
4261,
3364,
2693,
1685,
4262,
961,
1673,
2632,
190,
2006,
2203,
3841,
4585,
4586,
5197,
570,
2504,
3711,
1490,
5198,
4587,
2633,
3293,
1957,
4588,
584,
1514,
396,
1045,
1945,
5199,
4589,
1968,
2449,
5200,
5201,
4590,
4013,
619,
5202,
3154,
3294,
215,
2007,
2796,
2561,
3220,
4591,
3221,
4592,
763,
4263,
3842,
4593,
5203,
5204,
1958,
1767,
2956,
3365,
3712,
1174,
452,
1477,
4594,
3366,
3155,
5205,
2838,
1253,
2387,
2189,
1091,
2290,
4264,
492,
5206,
638,
1169,
1825,
2136,
1752,
4014,
648,
926,
1021,
1324,
4595,
520,
4596,
997,
847,
1007,
892,
4597,
3843,
2267,
1872,
3713,
2405,
1785,
4598,
1953,
2957,
3103,
3222,
1728,
4265,
2044,
3714,
4599,
2008,
1701,
3156,
1551,
30,
2268,
4266,
5207,
2027,
4600,
3589,
5208,
501,
5209,
4267,
594,
3478,
2166,
1822,
3590,
3479,
3591,
3223,
829,
2839,
4268,
5210,
1680,
3157,
1225,
4269,
5211,
3295,
4601,
4270,
3158,
2341,
5212,
4602,
4271,
5213,
4015,
4016,
5214,
1848,
2388,
2606,
3367,
5215,
4603,
374,
4017,
652,
4272,
4273,
375,
1140,
798,
5216,
5217,
5218,
2366,
4604,
2269,
546,
1659,
138,
3051,
2450,
4605,
5219,
2254,
612,
1849,
910,
796,
3844,
1740,
1371,
825,
3845,
3846,
5220,
2920,
2562,
5221,
692,
444,
3052,
2634,
801,
4606,
4274,
5222,
1491,
244,
1053,
3053,
4275,
4276,
340,
5223,
4018,
1041,
3005,
293,
1168,
87,
1357,
5224,
1539,
959,
5225,
2240,
721,
694,
4277,
3847,
219,
1478,
644,
1417,
3368,
2666,
1413,
1401,
1335,
1389,
4019,
5226,
5227,
3006,
2367,
3159,
1826,
730,
1515,
184,
2840,
66,
4607,
5228,
1660,
2958,
246,
3369,
378,
1457,
226,
3480,
975,
4020,
2959,
1264,
3592,
674,
696,
5229,
163,
5230,
1141,
2422,
2167,
713,
3593,
3370,
4608,
4021,
5231,
5232,
1186,
15,
5233,
1079,
1070,
5234,
1522,
3224,
3594,
276,
1050,
2725,
758,
1126,
653,
2960,
3296,
5235,
2342,
889,
3595,
4022,
3104,
3007,
903,
1250,
4609,
4023,
3481,
3596,
1342,
1681,
1718,
766,
3297,
286,
89,
2961,
3715,
5236,
1713,
5237,
2607,
3371,
3008,
5238,
2962,
2219,
3225,
2880,
5239,
4610,
2505,
2533,
181,
387,
1075,
4024,
731,
2190,
3372,
5240,
3298,
310,
313,
3482,
2304,
770,
4278,
54,
3054,
189,
4611,
3105,
3848,
4025,
5241,
1230,
1617,
1850,
355,
3597,
4279,
4612,
3373,
111,
4280,
3716,
1350,
3160,
3483,
3055,
4281,
2150,
3299,
3598,
5242,
2797,
4026,
4027,
3009,
722,
2009,
5243,
1071,
247,
1207,
2343,
2478,
1378,
4613,
2010,
864,
1437,
1214,
4614,
373,
3849,
1142,
2220,
667,
4615,
442,
2763,
2563,
3850,
4028,
1969,
4282,
3300,
1840,
837,
170,
1107,
934,
1336,
1883,
5244,
5245,
2119,
4283,
2841,
743,
1569,
5246,
4616,
4284,
582,
2389,
1418,
3484,
5247,
1803,
5248,
357,
1395,
1729,
3717,
3301,
2423,
1564,
2241,
5249,
3106,
3851,
1633,
4617,
1114,
2086,
4285,
1532,
5250,
482,
2451,
4618,
5251,
5252,
1492,
833,
1466,
5253,
2726,
3599,
1641,
2842,
5254,
1526,
1272,
3718,
4286,
1686,
1795,
416,
2564,
1903,
1954,
1804,
5255,
3852,
2798,
3853,
1159,
2321,
5256,
2881,
4619,
1610,
1584,
3056,
2424,
2764,
443,
3302,
1163,
3161,
5257,
5258,
4029,
5259,
4287,
2506,
3057,
4620,
4030,
3162,
2104,
1647,
3600,
2011,
1873,
4288,
5260,
4289,
431,
3485,
5261,
250,
97,
81,
4290,
5262,
1648,
1851,
1558,
160,
848,
5263,
866,
740,
1694,
5264,
2204,
2843,
3226,
4291,
4621,
3719,
1687,
950,
2479,
426,
469,
3227,
3720,
3721,
4031,
5265,
5266,
1188,
424,
1996,
861,
3601,
4292,
3854,
2205,
2694,
168,
1235,
3602,
4293,
5267,
2087,
1674,
4622,
3374,
3303,
220,
2565,
1009,
5268,
3855,
670,
3010,
332,
1208,
717,
5269,
5270,
3603,
2452,
4032,
3375,
5271,
513,
5272,
1209,
2882,
3376,
3163,
4623,
1080,
5273,
5274,
5275,
5276,
2534,
3722,
3604,
815,
1587,
4033,
4034,
5277,
3605,
3486,
3856,
1254,
4624,
1328,
3058,
1390,
4035,
1741,
4036,
3857,
4037,
5278,
236,
3858,
2453,
3304,
5279,
5280,
3723,
3859,
1273,
3860,
4625,
5281,
308,
5282,
4626,
245,
4627,
1852,
2480,
1307,
2583,
430,
715,
2137,
2454,
5283,
270,
199,
2883,
4038,
5284,
3606,
2727,
1753,
761,
1754,
725,
1661,
1841,
4628,
3487,
3724,
5285,
5286,
587,
14,
3305,
227,
2608,
326,
480,
2270,
943,
2765,
3607,
291,
650,
1884,
5287,
1702,
1226,
102,
1547,
62,
3488,
904,
4629,
3489,
1164,
4294,
5288,
5289,
1224,
1548,
2766,
391,
498,
1493,
5290,
1386,
1419,
5291,
2056,
1177,
4630,
813,
880,
1081,
2368,
566,
1145,
4631,
2291,
1001,
1035,
2566,
2609,
2242,
394,
1286,
5292,
5293,
2069,
5294,
86,
1494,
1730,
4039,
491,
1588,
745,
897,
2963,
843,
3377,
4040,
2767,
2884,
3306,
1768,
998,
2221,
2070,
397,
1827,
1195,
1970,
3725,
3011,
3378,
284,
5295,
3861,
2507,
2138,
2120,
1904,
5296,
4041,
2151,
4042,
4295,
1036,
3490,
1905,
114,
2567,
4296,
209,
1527,
5297,
5298,
2964,
2844,
2635,
2390,
2728,
3164,
812,
2568,
5299,
3307,
5300,
1559,
737,
1885,
3726,
1210,
885,
28,
2695,
3608,
3862,
5301,
4297,
1004,
1780,
4632,
5302,
346,
1982,
2222,
2696,
4633,
3863,
1742,
797,
1642,
4043,
1934,
1072,
1384,
2152,
896,
4044,
3308,
3727,
3228,
2885,
3609,
5303,
2569,
1959,
4634,
2455,
1786,
5304,
5305,
5306,
4045,
4298,
1005,
1308,
3728,
4299,
2729,
4635,
4636,
1528,
2610,
161,
1178,
4300,
1983,
987,
4637,
1101,
4301,
631,
4046,
1157,
3229,
2425,
1343,
1241,
1016,
2243,
2570,
372,
877,
2344,
2508,
1160,
555,
1935,
911,
4047,
5307,
466,
1170,
169,
1051,
2921,
2697,
3729,
2481,
3012,
1182,
2012,
2571,
1251,
2636,
5308,
992,
2345,
3491,
1540,
2730,
1201,
2071,
2406,
1997,
2482,
5309,
4638,
528,
1923,
2191,
1503,
1874,
1570,
2369,
3379,
3309,
5310,
557,
1073,
5311,
1828,
3492,
2088,
2271,
3165,
3059,
3107,
767,
3108,
2799,
4639,
1006,
4302,
4640,
2346,
1267,
2179,
3730,
3230,
778,
4048,
3231,
2731,
1597,
2667,
5312,
4641,
5313,
3493,
5314,
5315,
5316,
3310,
2698,
1433,
3311,
131,
95,
1504,
4049,
723,
4303,
3166,
1842,
3610,
2768,
2192,
4050,
2028,
2105,
3731,
5317,
3013,
4051,
1218,
5318,
3380,
3232,
4052,
4304,
2584,
248,
1634,
3864,
912,
5319,
2845,
3732,
3060,
3865,
654,
53,
5320,
3014,
5321,
1688,
4642,
777,
3494,
1032,
4053,
1425,
5322,
191,
820,
2121,
2846,
971,
4643,
931,
3233,
135,
664,
783,
3866,
1998,
772,
2922,
1936,
4054,
3867,
4644,
2923,
3234,
282,
2732,
640,
1372,
3495,
1127,
922,
325,
3381,
5323,
5324,
711,
2045,
5325,
5326,
4055,
2223,
2800,
1937,
4056,
3382,
2224,
2255,
3868,
2305,
5327,
4645,
3869,
1258,
3312,
4057,
3235,
2139,
2965,
4058,
4059,
5328,
2225,
258,
3236,
4646,
101,
1227,
5329,
3313,
1755,
5330,
1391,
3314,
5331,
2924,
2057,
893,
5332,
5333,
5334,
1402,
4305,
2347,
5335,
5336,
3237,
3611,
5337,
5338,
878,
1325,
1781,
2801,
4647,
259,
1385,
2585,
744,
1183,
2272,
4648,
5339,
4060,
2509,
5340,
684,
1024,
4306,
5341,
472,
3612,
3496,
1165,
3315,
4061,
4062,
322,
2153,
881,
455,
1695,
1152,
1340,
660,
554,
2154,
4649,
1058,
4650,
4307,
830,
1065,
3383,
4063,
4651,
1924,
5342,
1703,
1919,
5343,
932,
2273,
122,
5344,
4652,
947,
677,
5345,
3870,
2637,
297,
1906,
1925,
2274,
4653,
2322,
3316,
5346,
5347,
4308,
5348,
4309,
84,
4310,
112,
989,
5349,
547,
1059,
4064,
701,
3613,
1019,
5350,
4311,
5351,
3497,
942,
639,
457,
2306,
2456,
993,
2966,
407,
851,
494,
4654,
3384,
927,
5352,
1237,
5353,
2426,
3385,
573,
4312,
680,
921,
2925,
1279,
1875,
285,
790,
1448,
1984,
719,
2168,
5354,
5355,
4655,
4065,
4066,
1649,
5356,
1541,
563,
5357,
1077,
5358,
3386,
3061,
3498,
511,
3015,
4067,
4068,
3733,
4069,
1268,
2572,
3387,
3238,
4656,
4657,
5359,
535,
1048,
1276,
1189,
2926,
2029,
3167,
1438,
1373,
2847,
2967,
1134,
2013,
5360,
4313,
1238,
2586,
3109,
1259,
5361,
700,
5362,
2968,
3168,
3734,
4314,
5363,
4315,
1146,
1876,
1907,
4658,
2611,
4070,
781,
2427,
132,
1589,
203,
147,
273,
2802,
2407,
898,
1787,
2155,
4071,
4072,
5364,
3871,
2803,
5365,
5366,
4659,
4660,
5367,
3239,
5368,
1635,
3872,
965,
5369,
1805,
2699,
1516,
3614,
1121,
1082,
1329,
3317,
4073,
1449,
3873,
65,
1128,
2848,
2927,
2769,
1590,
3874,
5370,
5371,
12,
2668,
45,
976,
2587,
3169,
4661,
517,
2535,
1013,
1037,
3240,
5372,
3875,
2849,
5373,
3876,
5374,
3499,
5375,
2612,
614,
1999,
2323,
3877,
3110,
2733,
2638,
5376,
2588,
4316,
599,
1269,
5377,
1811,
3735,
5378,
2700,
3111,
759,
1060,
489,
1806,
3388,
3318,
1358,
5379,
5380,
2391,
1387,
1215,
2639,
2256,
490,
5381,
5382,
4317,
1759,
2392,
2348,
5383,
4662,
3878,
1908,
4074,
2640,
1807,
3241,
4663,
3500,
3319,
2770,
2349,
874,
5384,
5385,
3501,
3736,
1859,
91,
2928,
3737,
3062,
3879,
4664,
5386,
3170,
4075,
2669,
5387,
3502,
1202,
1403,
3880,
2969,
2536,
1517,
2510,
4665,
3503,
2511,
5388,
4666,
5389,
2701,
1886,
1495,
1731,
4076,
2370,
4667,
5390,
2030,
5391,
5392,
4077,
2702,
1216,
237,
2589,
4318,
2324,
4078,
3881,
4668,
4669,
2703,
3615,
3504,
445,
4670,
5393,
5394,
5395,
5396,
2771,
61,
4079,
3738,
1823,
4080,
5397,
687,
2046,
935,
925,
405,
2670,
703,
1096,
1860,
2734,
4671,
4081,
1877,
1367,
2704,
3389,
918,
2106,
1782,
2483,
334,
3320,
1611,
1093,
4672,
564,
3171,
3505,
3739,
3390,
945,
2641,
2058,
4673,
5398,
1926,
872,
4319,
5399,
3506,
2705,
3112,
349,
4320,
3740,
4082,
4674,
3882,
4321,
3741,
2156,
4083,
4675,
4676,
4322,
4677,
2408,
2047,
782,
4084,
400,
251,
4323,
1624,
5400,
5401,
277,
3742,
299,
1265,
476,
1191,
3883,
2122,
4324,
4325,
1109,
205,
5402,
2590,
1e3,
2157,
3616,
1861,
5403,
5404,
5405,
4678,
5406,
4679,
2573,
107,
2484,
2158,
4085,
3507,
3172,
5407,
1533,
541,
1301,
158,
753,
4326,
2886,
3617,
5408,
1696,
370,
1088,
4327,
4680,
3618,
579,
327,
440,
162,
2244,
269,
1938,
1374,
3508,
968,
3063,
56,
1396,
3113,
2107,
3321,
3391,
5409,
1927,
2159,
4681,
3016,
5410,
3619,
5411,
5412,
3743,
4682,
2485,
5413,
2804,
5414,
1650,
4683,
5415,
2613,
5416,
5417,
4086,
2671,
3392,
1149,
3393,
4087,
3884,
4088,
5418,
1076,
49,
5419,
951,
3242,
3322,
3323,
450,
2850,
920,
5420,
1812,
2805,
2371,
4328,
1909,
1138,
2372,
3885,
3509,
5421,
3243,
4684,
1910,
1147,
1518,
2428,
4685,
3886,
5422,
4686,
2393,
2614,
260,
1796,
3244,
5423,
5424,
3887,
3324,
708,
5425,
3620,
1704,
5426,
3621,
1351,
1618,
3394,
3017,
1887,
944,
4329,
3395,
4330,
3064,
3396,
4331,
5427,
3744,
422,
413,
1714,
3325,
500,
2059,
2350,
4332,
2486,
5428,
1344,
1911,
954,
5429,
1668,
5430,
5431,
4089,
2409,
4333,
3622,
3888,
4334,
5432,
2307,
1318,
2512,
3114,
133,
3115,
2887,
4687,
629,
31,
2851,
2706,
3889,
4688,
850,
949,
4689,
4090,
2970,
1732,
2089,
4335,
1496,
1853,
5433,
4091,
620,
3245,
981,
1242,
3745,
3397,
1619,
3746,
1643,
3326,
2140,
2457,
1971,
1719,
3510,
2169,
5434,
3246,
5435,
5436,
3398,
1829,
5437,
1277,
4690,
1565,
2048,
5438,
1636,
3623,
3116,
5439,
869,
2852,
655,
3890,
3891,
3117,
4092,
3018,
3892,
1310,
3624,
4691,
5440,
5441,
5442,
1733,
558,
4692,
3747,
335,
1549,
3065,
1756,
4336,
3748,
1946,
3511,
1830,
1291,
1192,
470,
2735,
2108,
2806,
913,
1054,
4093,
5443,
1027,
5444,
3066,
4094,
4693,
982,
2672,
3399,
3173,
3512,
3247,
3248,
1947,
2807,
5445,
571,
4694,
5446,
1831,
5447,
3625,
2591,
1523,
2429,
5448,
2090,
984,
4695,
3749,
1960,
5449,
3750,
852,
923,
2808,
3513,
3751,
969,
1519,
999,
2049,
2325,
1705,
5450,
3118,
615,
1662,
151,
597,
4095,
2410,
2326,
1049,
275,
4696,
3752,
4337,
568,
3753,
3626,
2487,
4338,
3754,
5451,
2430,
2275,
409,
3249,
5452,
1566,
2888,
3514,
1002,
769,
2853,
194,
2091,
3174,
3755,
2226,
3327,
4339,
628,
1505,
5453,
5454,
1763,
2180,
3019,
4096,
521,
1161,
2592,
1788,
2206,
2411,
4697,
4097,
1625,
4340,
4341,
412,
42,
3119,
464,
5455,
2642,
4698,
3400,
1760,
1571,
2889,
3515,
2537,
1219,
2207,
3893,
2643,
2141,
2373,
4699,
4700,
3328,
1651,
3401,
3627,
5456,
5457,
3628,
2488,
3516,
5458,
3756,
5459,
5460,
2276,
2092,
460,
5461,
4701,
5462,
3020,
962,
588,
3629,
289,
3250,
2644,
1116,
52,
5463,
3067,
1797,
5464,
5465,
5466,
1467,
5467,
1598,
1143,
3757,
4342,
1985,
1734,
1067,
4702,
1280,
3402,
465,
4703,
1572,
510,
5468,
1928,
2245,
1813,
1644,
3630,
5469,
4704,
3758,
5470,
5471,
2673,
1573,
1534,
5472,
5473,
536,
1808,
1761,
3517,
3894,
3175,
2645,
5474,
5475,
5476,
4705,
3518,
2929,
1912,
2809,
5477,
3329,
1122,
377,
3251,
5478,
360,
5479,
5480,
4343,
1529,
551,
5481,
2060,
3759,
1769,
2431,
5482,
2930,
4344,
3330,
3120,
2327,
2109,
2031,
4706,
1404,
136,
1468,
1479,
672,
1171,
3252,
2308,
271,
3176,
5483,
2772,
5484,
2050,
678,
2736,
865,
1948,
4707,
5485,
2014,
4098,
2971,
5486,
2737,
2227,
1397,
3068,
3760,
4708,
4709,
1735,
2931,
3403,
3631,
5487,
3895,
509,
2854,
2458,
2890,
3896,
5488,
5489,
3177,
3178,
4710,
4345,
2538,
4711,
2309,
1166,
1010,
552,
681,
1888,
5490,
5491,
2972,
2973,
4099,
1287,
1596,
1862,
3179,
358,
453,
736,
175,
478,
1117,
905,
1167,
1097,
5492,
1854,
1530,
5493,
1706,
5494,
2181,
3519,
2292,
3761,
3520,
3632,
4346,
2093,
4347,
5495,
3404,
1193,
2489,
4348,
1458,
2193,
2208,
1863,
1889,
1421,
3331,
2932,
3069,
2182,
3521,
595,
2123,
5496,
4100,
5497,
5498,
4349,
1707,
2646,
223,
3762,
1359,
751,
3121,
183,
3522,
5499,
2810,
3021,
419,
2374,
633,
704,
3897,
2394,
241,
5500,
5501,
5502,
838,
3022,
3763,
2277,
2773,
2459,
3898,
1939,
2051,
4101,
1309,
3122,
2246,
1181,
5503,
1136,
2209,
3899,
2375,
1446,
4350,
2310,
4712,
5504,
5505,
4351,
1055,
2615,
484,
3764,
5506,
4102,
625,
4352,
2278,
3405,
1499,
4353,
4103,
5507,
4104,
4354,
3253,
2279,
2280,
3523,
5508,
5509,
2774,
808,
2616,
3765,
3406,
4105,
4355,
3123,
2539,
526,
3407,
3900,
4356,
955,
5510,
1620,
4357,
2647,
2432,
5511,
1429,
3766,
1669,
1832,
994,
928,
5512,
3633,
1260,
5513,
5514,
5515,
1949,
2293,
741,
2933,
1626,
4358,
2738,
2460,
867,
1184,
362,
3408,
1392,
5516,
5517,
4106,
4359,
1770,
1736,
3254,
2934,
4713,
4714,
1929,
2707,
1459,
1158,
5518,
3070,
3409,
2891,
1292,
1930,
2513,
2855,
3767,
1986,
1187,
2072,
2015,
2617,
4360,
5519,
2574,
2514,
2170,
3768,
2490,
3332,
5520,
3769,
4715,
5521,
5522,
666,
1003,
3023,
1022,
3634,
4361,
5523,
4716,
1814,
2257,
574,
3901,
1603,
295,
1535,
705,
3902,
4362,
283,
858,
417,
5524,
5525,
3255,
4717,
4718,
3071,
1220,
1890,
1046,
2281,
2461,
4107,
1393,
1599,
689,
2575,
388,
4363,
5526,
2491,
802,
5527,
2811,
3903,
2061,
1405,
2258,
5528,
4719,
3904,
2110,
1052,
1345,
3256,
1585,
5529,
809,
5530,
5531,
5532,
575,
2739,
3524,
956,
1552,
1469,
1144,
2328,
5533,
2329,
1560,
2462,
3635,
3257,
4108,
616,
2210,
4364,
3180,
2183,
2294,
5534,
1833,
5535,
3525,
4720,
5536,
1319,
3770,
3771,
1211,
3636,
1023,
3258,
1293,
2812,
5537,
5538,
5539,
3905,
607,
2311,
3906,
762,
2892,
1439,
4365,
1360,
4721,
1485,
3072,
5540,
4722,
1038,
4366,
1450,
2062,
2648,
4367,
1379,
4723,
2593,
5541,
5542,
4368,
1352,
1414,
2330,
2935,
1172,
5543,
5544,
3907,
3908,
4724,
1798,
1451,
5545,
5546,
5547,
5548,
2936,
4109,
4110,
2492,
2351,
411,
4111,
4112,
3637,
3333,
3124,
4725,
1561,
2674,
1452,
4113,
1375,
5549,
5550,
47,
2974,
316,
5551,
1406,
1591,
2937,
3181,
5552,
1025,
2142,
3125,
3182,
354,
2740,
884,
2228,
4369,
2412,
508,
3772,
726,
3638,
996,
2433,
3639,
729,
5553,
392,
2194,
1453,
4114,
4726,
3773,
5554,
5555,
2463,
3640,
2618,
1675,
2813,
919,
2352,
2975,
2353,
1270,
4727,
4115,
73,
5556,
5557,
647,
5558,
3259,
2856,
2259,
1550,
1346,
3024,
5559,
1332,
883,
3526,
5560,
5561,
5562,
5563,
3334,
2775,
5564,
1212,
831,
1347,
4370,
4728,
2331,
3909,
1864,
3073,
720,
3910,
4729,
4730,
3911,
5565,
4371,
5566,
5567,
4731,
5568,
5569,
1799,
4732,
3774,
2619,
4733,
3641,
1645,
2376,
4734,
5570,
2938,
669,
2211,
2675,
2434,
5571,
2893,
5572,
5573,
1028,
3260,
5574,
4372,
2413,
5575,
2260,
1353,
5576,
5577,
4735,
3183,
518,
5578,
4116,
5579,
4373,
1961,
5580,
2143,
4374,
5581,
5582,
3025,
2354,
2355,
3912,
516,
1834,
1454,
4117,
2708,
4375,
4736,
2229,
2620,
1972,
1129,
3642,
5583,
2776,
5584,
2976,
1422,
577,
1470,
3026,
1524,
3410,
5585,
5586,
432,
4376,
3074,
3527,
5587,
2594,
1455,
2515,
2230,
1973,
1175,
5588,
1020,
2741,
4118,
3528,
4737,
5589,
2742,
5590,
1743,
1361,
3075,
3529,
2649,
4119,
4377,
4738,
2295,
895,
924,
4378,
2171,
331,
2247,
3076,
166,
1627,
3077,
1098,
5591,
1232,
2894,
2231,
3411,
4739,
657,
403,
1196,
2377,
542,
3775,
3412,
1600,
4379,
3530,
5592,
4740,
2777,
3261,
576,
530,
1362,
4741,
4742,
2540,
2676,
3776,
4120,
5593,
842,
3913,
5594,
2814,
2032,
1014,
4121,
213,
2709,
3413,
665,
621,
4380,
5595,
3777,
2939,
2435,
5596,
2436,
3335,
3643,
3414,
4743,
4381,
2541,
4382,
4744,
3644,
1682,
4383,
3531,
1380,
5597,
724,
2282,
600,
1670,
5598,
1337,
1233,
4745,
3126,
2248,
5599,
1621,
4746,
5600,
651,
4384,
5601,
1612,
4385,
2621,
5602,
2857,
5603,
2743,
2312,
3078,
5604,
716,
2464,
3079,
174,
1255,
2710,
4122,
3645,
548,
1320,
1398,
728,
4123,
1574,
5605,
1891,
1197,
3080,
4124,
5606,
3081,
3082,
3778,
3646,
3779,
747,
5607,
635,
4386,
4747,
5608,
5609,
5610,
4387,
5611,
5612,
4748,
5613,
3415,
4749,
2437,
451,
5614,
3780,
2542,
2073,
4388,
2744,
4389,
4125,
5615,
1764,
4750,
5616,
4390,
350,
4751,
2283,
2395,
2493,
5617,
4391,
4126,
2249,
1434,
4127,
488,
4752,
458,
4392,
4128,
3781,
771,
1330,
2396,
3914,
2576,
3184,
2160,
2414,
1553,
2677,
3185,
4393,
5618,
2494,
2895,
2622,
1720,
2711,
4394,
3416,
4753,
5619,
2543,
4395,
5620,
3262,
4396,
2778,
5621,
2016,
2745,
5622,
1155,
1017,
3782,
3915,
5623,
3336,
2313,
201,
1865,
4397,
1430,
5624,
4129,
5625,
5626,
5627,
5628,
5629,
4398,
1604,
5630,
414,
1866,
371,
2595,
4754,
4755,
3532,
2017,
3127,
4756,
1708,
960,
4399,
887,
389,
2172,
1536,
1663,
1721,
5631,
2232,
4130,
2356,
2940,
1580,
5632,
5633,
1744,
4757,
2544,
4758,
4759,
5634,
4760,
5635,
2074,
5636,
4761,
3647,
3417,
2896,
4400,
5637,
4401,
2650,
3418,
2815,
673,
2712,
2465,
709,
3533,
4131,
3648,
4402,
5638,
1148,
502,
634,
5639,
5640,
1204,
4762,
3649,
1575,
4763,
2623,
3783,
5641,
3784,
3128,
948,
3263,
121,
1745,
3916,
1110,
5642,
4403,
3083,
2516,
3027,
4132,
3785,
1151,
1771,
3917,
1488,
4133,
1987,
5643,
2438,
3534,
5644,
5645,
2094,
5646,
4404,
3918,
1213,
1407,
2816,
531,
2746,
2545,
3264,
1011,
1537,
4764,
2779,
4405,
3129,
1061,
5647,
3786,
3787,
1867,
2897,
5648,
2018,
120,
4406,
4407,
2063,
3650,
3265,
2314,
3919,
2678,
3419,
1955,
4765,
4134,
5649,
3535,
1047,
2713,
1266,
5650,
1368,
4766,
2858,
649,
3420,
3920,
2546,
2747,
1102,
2859,
2679,
5651,
5652,
2e3,
5653,
1111,
3651,
2977,
5654,
2495,
3921,
3652,
2817,
1855,
3421,
3788,
5655,
5656,
3422,
2415,
2898,
3337,
3266,
3653,
5657,
2577,
5658,
3654,
2818,
4135,
1460,
856,
5659,
3655,
5660,
2899,
2978,
5661,
2900,
3922,
5662,
4408,
632,
2517,
875,
3923,
1697,
3924,
2296,
5663,
5664,
4767,
3028,
1239,
580,
4768,
4409,
5665,
914,
936,
2075,
1190,
4136,
1039,
2124,
5666,
5667,
5668,
5669,
3423,
1473,
5670,
1354,
4410,
3925,
4769,
2173,
3084,
4137,
915,
3338,
4411,
4412,
3339,
1605,
1835,
5671,
2748,
398,
3656,
4413,
3926,
4138,
328,
1913,
2860,
4139,
3927,
1331,
4414,
3029,
937,
4415,
5672,
3657,
4140,
4141,
3424,
2161,
4770,
3425,
524,
742,
538,
3085,
1012,
5673,
5674,
3928,
2466,
5675,
658,
1103,
225,
3929,
5676,
5677,
4771,
5678,
4772,
5679,
3267,
1243,
5680,
4142,
963,
2250,
4773,
5681,
2714,
3658,
3186,
5682,
5683,
2596,
2332,
5684,
4774,
5685,
5686,
5687,
3536,
957,
3426,
2547,
2033,
1931,
2941,
2467,
870,
2019,
3659,
1746,
2780,
2781,
2439,
2468,
5688,
3930,
5689,
3789,
3130,
3790,
3537,
3427,
3791,
5690,
1179,
3086,
5691,
3187,
2378,
4416,
3792,
2548,
3188,
3131,
2749,
4143,
5692,
3428,
1556,
2549,
2297,
977,
2901,
2034,
4144,
1205,
3429,
5693,
1765,
3430,
3189,
2125,
1271,
714,
1689,
4775,
3538,
5694,
2333,
3931,
533,
4417,
3660,
2184,
617,
5695,
2469,
3340,
3539,
2315,
5696,
5697,
3190,
5698,
5699,
3932,
1988,
618,
427,
2651,
3540,
3431,
5700,
5701,
1244,
1690,
5702,
2819,
4418,
4776,
5703,
3541,
4777,
5704,
2284,
1576,
473,
3661,
4419,
3432,
972,
5705,
3662,
5706,
3087,
5707,
5708,
4778,
4779,
5709,
3793,
4145,
4146,
5710,
153,
4780,
356,
5711,
1892,
2902,
4420,
2144,
408,
803,
2357,
5712,
3933,
5713,
4421,
1646,
2578,
2518,
4781,
4782,
3934,
5714,
3935,
4422,
5715,
2416,
3433,
752,
5716,
5717,
1962,
3341,
2979,
5718,
746,
3030,
2470,
4783,
4423,
3794,
698,
4784,
1893,
4424,
3663,
2550,
4785,
3664,
3936,
5719,
3191,
3434,
5720,
1824,
1302,
4147,
2715,
3937,
1974,
4425,
5721,
4426,
3192,
823,
1303,
1288,
1236,
2861,
3542,
4148,
3435,
774,
3938,
5722,
1581,
4786,
1304,
2862,
3939,
4787,
5723,
2440,
2162,
1083,
3268,
4427,
4149,
4428,
344,
1173,
288,
2316,
454,
1683,
5724,
5725,
1461,
4788,
4150,
2597,
5726,
5727,
4789,
985,
894,
5728,
3436,
3193,
5729,
1914,
2942,
3795,
1989,
5730,
2111,
1975,
5731,
4151,
5732,
2579,
1194,
425,
5733,
4790,
3194,
1245,
3796,
4429,
5734,
5735,
2863,
5736,
636,
4791,
1856,
3940,
760,
1800,
5737,
4430,
2212,
1508,
4792,
4152,
1894,
1684,
2298,
5738,
5739,
4793,
4431,
4432,
2213,
479,
5740,
5741,
832,
5742,
4153,
2496,
5743,
2980,
2497,
3797,
990,
3132,
627,
1815,
2652,
4433,
1582,
4434,
2126,
2112,
3543,
4794,
5744,
799,
4435,
3195,
5745,
4795,
2113,
1737,
3031,
1018,
543,
754,
4436,
3342,
1676,
4796,
4797,
4154,
4798,
1489,
5746,
3544,
5747,
2624,
2903,
4155,
5748,
5749,
2981,
5750,
5751,
5752,
5753,
3196,
4799,
4800,
2185,
1722,
5754,
3269,
3270,
1843,
3665,
1715,
481,
365,
1976,
1857,
5755,
5756,
1963,
2498,
4801,
5757,
2127,
3666,
3271,
433,
1895,
2064,
2076,
5758,
602,
2750,
5759,
5760,
5761,
5762,
5763,
3032,
1628,
3437,
5764,
3197,
4802,
4156,
2904,
4803,
2519,
5765,
2551,
2782,
5766,
5767,
5768,
3343,
4804,
2905,
5769,
4805,
5770,
2864,
4806,
4807,
1221,
2982,
4157,
2520,
5771,
5772,
5773,
1868,
1990,
5774,
5775,
5776,
1896,
5777,
5778,
4808,
1897,
4158,
318,
5779,
2095,
4159,
4437,
5780,
5781,
485,
5782,
938,
3941,
553,
2680,
116,
5783,
3942,
3667,
5784,
3545,
2681,
2783,
3438,
3344,
2820,
5785,
3668,
2943,
4160,
1747,
2944,
2983,
5786,
5787,
207,
5788,
4809,
5789,
4810,
2521,
5790,
3033,
890,
3669,
3943,
5791,
1878,
3798,
3439,
5792,
2186,
2358,
3440,
1652,
5793,
5794,
5795,
941,
2299,
208,
3546,
4161,
2020,
330,
4438,
3944,
2906,
2499,
3799,
4439,
4811,
5796,
5797,
5798,
2522,
1613,
4812,
5799,
3345,
3945,
2523,
5800,
4162,
5801,
1637,
4163,
2471,
4813,
3946,
5802,
2500,
3034,
3800,
5803,
5804,
2195,
4814,
5805,
2163,
5806,
5807,
5808,
5809,
5810,
5811,
5812,
5813,
5814,
5815,
5816,
5817,
5818,
5819,
5820,
5821,
5822,
5823,
5824,
5825,
5826,
5827,
5828,
5829,
5830,
5831,
5832,
5833,
5834,
5835,
5836,
5837,
5838,
5839,
5840,
5841,
5842,
5843,
5844,
5845,
5846,
5847,
5848,
5849,
5850,
5851,
5852,
5853,
5854,
5855,
5856,
5857,
5858,
5859,
5860,
5861,
5862,
5863,
5864,
5865,
5866,
5867,
5868,
5869,
5870,
5871,
5872,
5873,
5874,
5875,
5876,
5877,
5878,
5879,
5880,
5881,
5882,
5883,
5884,
5885,
5886,
5887,
5888,
5889,
5890,
5891,
5892,
5893,
5894,
5895,
5896,
5897,
5898,
5899,
5900,
5901,
5902,
5903,
5904,
5905,
5906,
5907,
5908,
5909,
5910,
5911,
5912,
5913,
5914,
5915,
5916,
5917,
5918,
5919,
5920,
5921,
5922,
5923,
5924,
5925,
5926,
5927,
5928,
5929,
5930,
5931,
5932,
5933,
5934,
5935,
5936,
5937,
5938,
5939,
5940,
5941,
5942,
5943,
5944,
5945,
5946,
5947,
5948,
5949,
5950,
5951,
5952,
5953,
5954,
5955,
5956,
5957,
5958,
5959,
5960,
5961,
5962,
5963,
5964,
5965,
5966,
5967,
5968,
5969,
5970,
5971,
5972,
5973,
5974,
5975,
5976,
5977,
5978,
5979,
5980,
5981,
5982,
5983,
5984,
5985,
5986,
5987,
5988,
5989,
5990,
5991,
5992,
5993,
5994,
5995,
5996,
5997,
5998,
5999,
6e3,
6001,
6002,
6003,
6004,
6005,
6006,
6007,
6008,
6009,
6010,
6011,
6012,
6013,
6014,
6015,
6016,
6017,
6018,
6019,
6020,
6021,
6022,
6023,
6024,
6025,
6026,
6027,
6028,
6029,
6030,
6031,
6032,
6033,
6034,
6035,
6036,
6037,
6038,
6039,
6040,
6041,
6042,
6043,
6044,
6045,
6046,
6047,
6048,
6049,
6050,
6051,
6052,
6053,
6054,
6055,
6056,
6057,
6058,
6059,
6060,
6061,
6062,
6063,
6064,
6065,
6066,
6067,
6068,
6069,
6070,
6071,
6072,
6073,
6074,
6075,
6076,
6077,
6078,
6079,
6080,
6081,
6082,
6083,
6084,
6085,
6086,
6087,
6088,
6089,
6090,
6091,
6092,
6093,
6094,
6095,
6096,
6097,
6098,
6099,
6100,
6101,
6102,
6103,
6104,
6105,
6106,
6107,
6108,
6109,
6110,
6111,
6112,
6113,
6114,
6115,
6116,
6117,
6118,
6119,
6120,
6121,
6122,
6123,
6124,
6125,
6126,
6127,
6128,
6129,
6130,
6131,
6132,
6133,
6134,
6135,
6136,
6137,
6138,
6139,
6140,
6141,
6142,
6143,
6144,
6145,
6146,
6147,
6148,
6149,
6150,
6151,
6152,
6153,
6154,
6155,
6156,
6157,
6158,
6159,
6160,
6161,
6162,
6163,
6164,
6165,
6166,
6167,
6168,
6169,
6170,
6171,
6172,
6173,
6174,
6175,
6176,
6177,
6178,
6179,
6180,
6181,
6182,
6183,
6184,
6185,
6186,
6187,
6188,
6189,
6190,
6191,
6192,
6193,
6194,
6195,
6196,
6197,
6198,
6199,
6200,
6201,
6202,
6203,
6204,
6205,
6206,
6207,
6208,
6209,
6210,
6211,
6212,
6213,
6214,
6215,
6216,
6217,
6218,
6219,
6220,
6221,
6222,
6223,
3670,
6224,
6225,
6226,
6227,
6228,
6229,
6230,
6231,
6232,
6233,
6234,
6235,
6236,
6237,
6238,
6239,
6240,
6241,
6242,
6243,
6244,
6245,
6246,
6247,
6248,
6249,
6250,
6251,
6252,
6253,
6254,
6255,
6256,
6257,
6258,
6259,
6260,
6261,
6262,
6263,
6264,
6265,
6266,
6267,
6268,
6269,
6270,
6271,
6272,
6273,
6274,
6275,
6276,
6277,
6278,
6279,
6280,
6281,
6282,
6283,
6284,
6285,
4815,
6286,
6287,
6288,
6289,
6290,
6291,
6292,
4816,
6293,
6294,
6295,
6296,
6297,
6298,
6299,
6300,
6301,
6302,
6303,
6304,
6305,
6306,
6307,
6308,
6309,
6310,
6311,
4817,
4818,
6312,
6313,
6314,
6315,
6316,
6317,
6318,
4819,
6319,
6320,
6321,
6322,
6323,
6324,
6325,
6326,
6327,
6328,
6329,
6330,
6331,
6332,
6333,
6334,
6335,
6336,
6337,
4820,
6338,
6339,
6340,
6341,
6342,
6343,
6344,
6345,
6346,
6347,
6348,
6349,
6350,
6351,
6352,
6353,
6354,
6355,
6356,
6357,
6358,
6359,
6360,
6361,
6362,
6363,
6364,
6365,
6366,
6367,
6368,
6369,
6370,
6371,
6372,
6373,
6374,
6375,
6376,
6377,
6378,
6379,
6380,
6381,
6382,
6383,
6384,
6385,
6386,
6387,
6388,
6389,
6390,
6391,
6392,
6393,
6394,
6395,
6396,
6397,
6398,
6399,
6400,
6401,
6402,
6403,
6404,
6405,
6406,
6407,
6408,
6409,
6410,
3441,
6411,
6412,
6413,
6414,
6415,
6416,
6417,
6418,
6419,
6420,
6421,
6422,
6423,
6424,
6425,
4440,
6426,
6427,
6428,
6429,
6430,
6431,
6432,
6433,
6434,
6435,
6436,
6437,
6438,
6439,
6440,
6441,
6442,
6443,
6444,
6445,
6446,
6447,
6448,
6449,
6450,
6451,
6452,
6453,
6454,
4821,
6455,
6456,
6457,
6458,
6459,
6460,
6461,
6462,
6463,
6464,
6465,
6466,
6467,
6468,
6469,
6470,
6471,
6472,
6473,
6474,
6475,
6476,
6477,
3947,
3948,
6478,
6479,
6480,
6481,
3272,
4441,
6482,
6483,
6484,
6485,
4442,
6486,
6487,
6488,
6489,
6490,
6491,
6492,
6493,
6494,
6495,
6496,
4822,
6497,
6498,
6499,
6500,
6501,
6502,
6503,
6504,
6505,
6506,
6507,
6508,
6509,
6510,
6511,
6512,
6513,
6514,
6515,
6516,
6517,
6518,
6519,
6520,
6521,
6522,
6523,
6524,
6525,
6526,
6527,
6528,
6529,
6530,
6531,
6532,
6533,
6534,
6535,
6536,
6537,
6538,
6539,
6540,
6541,
6542,
6543,
6544,
6545,
6546,
6547,
6548,
6549,
6550,
6551,
6552,
6553,
6554,
6555,
6556,
2784,
6557,
4823,
6558,
6559,
6560,
6561,
6562,
6563,
6564,
6565,
6566,
6567,
6568,
6569,
3949,
6570,
6571,
6572,
4824,
6573,
6574,
6575,
6576,
6577,
6578,
6579,
6580,
6581,
6582,
6583,
4825,
6584,
6585,
6586,
3950,
2785,
6587,
6588,
6589,
6590,
6591,
6592,
6593,
6594,
6595,
6596,
6597,
6598,
6599,
6600,
6601,
6602,
6603,
6604,
6605,
6606,
6607,
6608,
6609,
6610,
6611,
6612,
4826,
6613,
6614,
6615,
4827,
6616,
6617,
6618,
6619,
6620,
6621,
6622,
6623,
6624,
6625,
4164,
6626,
6627,
6628,
6629,
6630,
6631,
6632,
6633,
6634,
3547,
6635,
4828,
6636,
6637,
6638,
6639,
6640,
6641,
6642,
3951,
2984,
6643,
6644,
6645,
6646,
6647,
6648,
6649,
4165,
6650,
4829,
6651,
6652,
4830,
6653,
6654,
6655,
6656,
6657,
6658,
6659,
6660,
6661,
6662,
4831,
6663,
6664,
6665,
6666,
6667,
6668,
6669,
6670,
6671,
4166,
6672,
4832,
3952,
6673,
6674,
6675,
6676,
4833,
6677,
6678,
6679,
4167,
6680,
6681,
6682,
3198,
6683,
6684,
6685,
6686,
6687,
6688,
6689,
6690,
6691,
6692,
6693,
6694,
6695,
6696,
6697,
4834,
6698,
6699,
6700,
6701,
6702,
6703,
6704,
6705,
6706,
6707,
6708,
6709,
6710,
6711,
6712,
6713,
6714,
6715,
6716,
6717,
6718,
6719,
6720,
6721,
6722,
6723,
6724,
6725,
6726,
6727,
6728,
6729,
6730,
6731,
6732,
6733,
6734,
4443,
6735,
6736,
6737,
6738,
6739,
6740,
6741,
6742,
6743,
6744,
6745,
4444,
6746,
6747,
6748,
6749,
6750,
6751,
6752,
6753,
6754,
6755,
6756,
6757,
6758,
6759,
6760,
6761,
6762,
6763,
6764,
6765,
6766,
6767,
6768,
6769,
6770,
6771,
6772,
6773,
6774,
6775,
6776,
6777,
6778,
6779,
6780,
6781,
4168,
6782,
6783,
3442,
6784,
6785,
6786,
6787,
6788,
6789,
6790,
6791,
4169,
6792,
6793,
6794,
6795,
6796,
6797,
6798,
6799,
6800,
6801,
6802,
6803,
6804,
6805,
6806,
6807,
6808,
6809,
6810,
6811,
4835,
6812,
6813,
6814,
4445,
6815,
6816,
4446,
6817,
6818,
6819,
6820,
6821,
6822,
6823,
6824,
6825,
6826,
6827,
6828,
6829,
6830,
6831,
6832,
6833,
6834,
6835,
3548,
6836,
6837,
6838,
6839,
6840,
6841,
6842,
6843,
6844,
6845,
6846,
4836,
6847,
6848,
6849,
6850,
6851,
6852,
6853,
6854,
3953,
6855,
6856,
6857,
6858,
6859,
6860,
6861,
6862,
6863,
6864,
6865,
6866,
6867,
6868,
6869,
6870,
6871,
6872,
6873,
6874,
6875,
6876,
6877,
3199,
6878,
6879,
6880,
6881,
6882,
4447,
6883,
6884,
6885,
6886,
6887,
6888,
6889,
6890,
6891,
6892,
6893,
6894,
6895,
6896,
6897,
6898,
6899,
6900,
6901,
6902,
6903,
6904,
4170,
6905,
6906,
6907,
6908,
6909,
6910,
6911,
6912,
6913,
6914,
6915,
6916,
6917,
6918,
6919,
6920,
6921,
6922,
6923,
6924,
6925,
6926,
6927,
4837,
6928,
6929,
6930,
6931,
6932,
6933,
6934,
6935,
6936,
3346,
6937,
6938,
4838,
6939,
6940,
6941,
4448,
6942,
6943,
6944,
6945,
6946,
4449,
6947,
6948,
6949,
6950,
6951,
6952,
6953,
6954,
6955,
6956,
6957,
6958,
6959,
6960,
6961,
6962,
6963,
6964,
6965,
6966,
6967,
6968,
6969,
6970,
6971,
6972,
6973,
6974,
6975,
6976,
6977,
6978,
6979,
6980,
6981,
6982,
6983,
6984,
6985,
6986,
6987,
6988,
6989,
6990,
6991,
6992,
6993,
6994,
3671,
6995,
6996,
6997,
6998,
4839,
6999,
7e3,
7001,
7002,
3549,
7003,
7004,
7005,
7006,
7007,
7008,
7009,
7010,
7011,
7012,
7013,
7014,
7015,
7016,
7017,
7018,
7019,
7020,
7021,
7022,
7023,
7024,
7025,
7026,
7027,
7028,
7029,
7030,
4840,
7031,
7032,
7033,
7034,
7035,
7036,
7037,
7038,
4841,
7039,
7040,
7041,
7042,
7043,
7044,
7045,
7046,
7047,
7048,
7049,
7050,
7051,
7052,
7053,
7054,
7055,
7056,
7057,
7058,
7059,
7060,
7061,
7062,
7063,
7064,
7065,
7066,
7067,
7068,
7069,
7070,
2985,
7071,
7072,
7073,
7074,
7075,
7076,
7077,
7078,
7079,
7080,
4842,
7081,
7082,
7083,
7084,
7085,
7086,
7087,
7088,
7089,
7090,
7091,
7092,
7093,
7094,
7095,
7096,
7097,
7098,
7099,
7100,
7101,
7102,
7103,
7104,
7105,
7106,
7107,
7108,
7109,
7110,
7111,
7112,
7113,
7114,
7115,
7116,
7117,
7118,
4450,
7119,
7120,
7121,
7122,
7123,
7124,
7125,
7126,
7127,
7128,
7129,
7130,
7131,
7132,
7133,
7134,
7135,
7136,
7137,
7138,
7139,
7140,
7141,
7142,
7143,
4843,
7144,
7145,
7146,
7147,
7148,
7149,
7150,
7151,
7152,
7153,
7154,
7155,
7156,
7157,
7158,
7159,
7160,
7161,
7162,
7163,
7164,
7165,
7166,
7167,
7168,
7169,
7170,
7171,
7172,
7173,
7174,
7175,
7176,
7177,
7178,
7179,
7180,
7181,
7182,
7183,
7184,
7185,
7186,
7187,
7188,
4171,
4172,
7189,
7190,
7191,
7192,
7193,
7194,
7195,
7196,
7197,
7198,
7199,
7200,
7201,
7202,
7203,
7204,
7205,
7206,
7207,
7208,
7209,
7210,
7211,
7212,
7213,
7214,
7215,
7216,
7217,
7218,
7219,
7220,
7221,
7222,
7223,
7224,
7225,
7226,
7227,
7228,
7229,
7230,
7231,
7232,
7233,
7234,
7235,
7236,
7237,
7238,
7239,
7240,
7241,
7242,
7243,
7244,
7245,
7246,
7247,
7248,
7249,
7250,
7251,
7252,
7253,
7254,
7255,
7256,
7257,
7258,
7259,
7260,
7261,
7262,
7263,
7264,
7265,
7266,
7267,
7268,
7269,
7270,
7271,
7272,
7273,
7274,
7275,
7276,
7277,
7278,
7279,
7280,
7281,
7282,
7283,
7284,
7285,
7286,
7287,
7288,
7289,
7290,
7291,
7292,
7293,
7294,
7295,
7296,
4844,
7297,
7298,
7299,
7300,
7301,
7302,
7303,
7304,
7305,
7306,
7307,
7308,
7309,
7310,
7311,
7312,
7313,
7314,
7315,
7316,
4451,
7317,
7318,
7319,
7320,
7321,
7322,
7323,
7324,
7325,
7326,
7327,
7328,
7329,
7330,
7331,
7332,
7333,
7334,
7335,
7336,
7337,
7338,
7339,
7340,
7341,
7342,
7343,
7344,
7345,
7346,
7347,
7348,
7349,
7350,
7351,
7352,
7353,
4173,
7354,
7355,
4845,
7356,
7357,
7358,
7359,
7360,
7361,
7362,
7363,
7364,
7365,
7366,
7367,
7368,
7369,
7370,
7371,
7372,
7373,
7374,
7375,
7376,
7377,
7378,
7379,
7380,
7381,
7382,
7383,
7384,
7385,
7386,
7387,
7388,
4846,
7389,
7390,
7391,
7392,
7393,
7394,
7395,
7396,
7397,
7398,
7399,
7400,
7401,
7402,
7403,
7404,
7405,
3672,
7406,
7407,
7408,
7409,
7410,
7411,
7412,
7413,
7414,
7415,
7416,
7417,
7418,
7419,
7420,
7421,
7422,
7423,
7424,
7425,
7426,
7427,
7428,
7429,
7430,
7431,
7432,
7433,
7434,
7435,
7436,
7437,
7438,
7439,
7440,
7441,
7442,
7443,
7444,
7445,
7446,
7447,
7448,
7449,
7450,
7451,
7452,
7453,
4452,
7454,
3200,
7455,
7456,
7457,
7458,
7459,
7460,
7461,
7462,
7463,
7464,
7465,
7466,
7467,
7468,
7469,
7470,
7471,
7472,
7473,
7474,
4847,
7475,
7476,
7477,
3133,
7478,
7479,
7480,
7481,
7482,
7483,
7484,
7485,
7486,
7487,
7488,
7489,
7490,
7491,
7492,
7493,
7494,
7495,
7496,
7497,
7498,
7499,
7500,
7501,
7502,
3347,
7503,
7504,
7505,
7506,
7507,
7508,
7509,
7510,
7511,
7512,
7513,
7514,
7515,
7516,
7517,
7518,
7519,
7520,
7521,
4848,
7522,
7523,
7524,
7525,
7526,
7527,
7528,
7529,
7530,
7531,
7532,
7533,
7534,
7535,
7536,
7537,
7538,
7539,
7540,
7541,
7542,
7543,
7544,
7545,
7546,
7547,
7548,
7549,
3801,
4849,
7550,
7551,
7552,
7553,
7554,
7555,
7556,
7557,
7558,
7559,
7560,
7561,
7562,
7563,
7564,
7565,
7566,
7567,
7568,
7569,
3035,
7570,
7571,
7572,
7573,
7574,
7575,
7576,
7577,
7578,
7579,
7580,
7581,
7582,
7583,
7584,
7585,
7586,
7587,
7588,
7589,
7590,
7591,
7592,
7593,
7594,
7595,
7596,
7597,
7598,
7599,
7600,
7601,
7602,
7603,
7604,
7605,
7606,
7607,
7608,
7609,
7610,
7611,
7612,
7613,
7614,
7615,
7616,
4850,
7617,
7618,
3802,
7619,
7620,
7621,
7622,
7623,
7624,
7625,
7626,
7627,
7628,
7629,
7630,
7631,
7632,
4851,
7633,
7634,
7635,
7636,
7637,
7638,
7639,
7640,
7641,
7642,
7643,
7644,
7645,
7646,
7647,
7648,
7649,
7650,
7651,
7652,
7653,
7654,
7655,
7656,
7657,
7658,
7659,
7660,
7661,
7662,
7663,
7664,
7665,
7666,
7667,
7668,
7669,
7670,
4453,
7671,
7672,
7673,
7674,
7675,
7676,
7677,
7678,
7679,
7680,
7681,
7682,
7683,
7684,
7685,
7686,
7687,
7688,
7689,
7690,
7691,
7692,
7693,
7694,
7695,
7696,
7697,
3443,
7698,
7699,
7700,
7701,
7702,
4454,
7703,
7704,
7705,
7706,
7707,
7708,
7709,
7710,
7711,
7712,
7713,
2472,
7714,
7715,
7716,
7717,
7718,
7719,
7720,
7721,
7722,
7723,
7724,
7725,
7726,
7727,
7728,
7729,
7730,
7731,
3954,
7732,
7733,
7734,
7735,
7736,
7737,
7738,
7739,
7740,
7741,
7742,
7743,
7744,
7745,
7746,
7747,
7748,
7749,
7750,
3134,
7751,
7752,
4852,
7753,
7754,
7755,
4853,
7756,
7757,
7758,
7759,
7760,
4174,
7761,
7762,
7763,
7764,
7765,
7766,
7767,
7768,
7769,
7770,
7771,
7772,
7773,
7774,
7775,
7776,
7777,
7778,
7779,
7780,
7781,
7782,
7783,
7784,
7785,
7786,
7787,
7788,
7789,
7790,
7791,
7792,
7793,
7794,
7795,
7796,
7797,
7798,
7799,
7800,
7801,
7802,
7803,
7804,
7805,
4854,
7806,
7807,
7808,
7809,
7810,
7811,
7812,
7813,
7814,
7815,
7816,
7817,
7818,
7819,
7820,
7821,
7822,
7823,
7824,
7825,
4855,
7826,
7827,
7828,
7829,
7830,
7831,
7832,
7833,
7834,
7835,
7836,
7837,
7838,
7839,
7840,
7841,
7842,
7843,
7844,
7845,
7846,
7847,
3955,
7848,
7849,
7850,
7851,
7852,
7853,
7854,
7855,
7856,
7857,
7858,
7859,
7860,
3444,
7861,
7862,
7863,
7864,
7865,
7866,
7867,
7868,
7869,
7870,
7871,
7872,
7873,
7874,
7875,
7876,
7877,
7878,
7879,
7880,
7881,
7882,
7883,
7884,
7885,
7886,
7887,
7888,
7889,
7890,
7891,
4175,
7892,
7893,
7894,
7895,
7896,
4856,
4857,
7897,
7898,
7899,
7900,
2598,
7901,
7902,
7903,
7904,
7905,
7906,
7907,
7908,
4455,
7909,
7910,
7911,
7912,
7913,
7914,
3201,
7915,
7916,
7917,
7918,
7919,
7920,
7921,
4858,
7922,
7923,
7924,
7925,
7926,
7927,
7928,
7929,
7930,
7931,
7932,
7933,
7934,
7935,
7936,
7937,
7938,
7939,
7940,
7941,
7942,
7943,
7944,
7945,
7946,
7947,
7948,
7949,
7950,
7951,
7952,
7953,
7954,
7955,
7956,
7957,
7958,
7959,
7960,
7961,
7962,
7963,
7964,
7965,
7966,
7967,
7968,
7969,
7970,
7971,
7972,
7973,
7974,
7975,
7976,
7977,
7978,
7979,
7980,
7981,
4859,
7982,
7983,
7984,
7985,
7986,
7987,
7988,
7989,
7990,
7991,
7992,
7993,
7994,
7995,
7996,
4860,
7997,
7998,
7999,
8e3,
8001,
8002,
8003,
8004,
8005,
8006,
8007,
8008,
8009,
8010,
8011,
8012,
8013,
8014,
8015,
8016,
4176,
8017,
8018,
8019,
8020,
8021,
8022,
8023,
4861,
8024,
8025,
8026,
8027,
8028,
8029,
8030,
8031,
8032,
8033,
8034,
8035,
8036,
4862,
4456,
8037,
8038,
8039,
8040,
4863,
8041,
8042,
8043,
8044,
8045,
8046,
8047,
8048,
8049,
8050,
8051,
8052,
8053,
8054,
8055,
8056,
8057,
8058,
8059,
8060,
8061,
8062,
8063,
8064,
8065,
8066,
8067,
8068,
8069,
8070,
8071,
8072,
8073,
8074,
8075,
8076,
8077,
8078,
8079,
8080,
8081,
8082,
8083,
8084,
8085,
8086,
8087,
8088,
8089,
8090,
8091,
8092,
8093,
8094,
8095,
8096,
8097,
8098,
8099,
4864,
4177,
8100,
8101,
8102,
8103,
8104,
8105,
8106,
8107,
8108,
8109,
8110,
8111,
8112,
8113,
8114,
8115,
8116,
8117,
8118,
8119,
8120,
4178,
8121,
8122,
8123,
8124,
8125,
8126,
8127,
8128,
8129,
8130,
8131,
8132,
8133,
8134,
8135,
8136,
8137,
8138,
8139,
8140,
8141,
8142,
8143,
8144,
8145,
4865,
4866,
8146,
8147,
8148,
8149,
8150,
8151,
8152,
8153,
8154,
8155,
8156,
8157,
8158,
8159,
8160,
8161,
8162,
8163,
8164,
8165,
4179,
8166,
8167,
8168,
8169,
8170,
8171,
8172,
8173,
8174,
8175,
8176,
8177,
8178,
8179,
8180,
8181,
4457,
8182,
8183,
8184,
8185,
8186,
8187,
8188,
8189,
8190,
8191,
8192,
8193,
8194,
8195,
8196,
8197,
8198,
8199,
8200,
8201,
8202,
8203,
8204,
8205,
8206,
8207,
8208,
8209,
8210,
8211,
8212,
8213,
8214,
8215,
8216,
8217,
8218,
8219,
8220,
8221,
8222,
8223,
8224,
8225,
8226,
8227,
8228,
8229,
8230,
8231,
8232,
8233,
8234,
8235,
8236,
8237,
8238,
8239,
8240,
8241,
8242,
8243,
8244,
8245,
8246,
8247,
8248,
8249,
8250,
8251,
8252,
8253,
8254,
8255,
8256,
3445,
8257,
8258,
8259,
8260,
8261,
8262,
4458,
8263,
8264,
8265,
8266,
8267,
8268,
8269,
8270,
8271,
8272,
4459,
8273,
8274,
8275,
8276,
3550,
8277,
8278,
8279,
8280,
8281,
8282,
8283,
8284,
8285,
8286,
8287,
8288,
8289,
4460,
8290,
8291,
8292,
8293,
8294,
8295,
8296,
8297,
8298,
8299,
8300,
8301,
8302,
8303,
8304,
8305,
8306,
8307,
4867,
8308,
8309,
8310,
8311,
8312,
3551,
8313,
8314,
8315,
8316,
8317,
8318,
8319,
8320,
8321,
8322,
8323,
8324,
8325,
8326,
4868,
8327,
8328,
8329,
8330,
8331,
8332,
8333,
8334,
8335,
8336,
8337,
8338,
8339,
8340,
8341,
8342,
8343,
8344,
8345,
8346,
8347,
8348,
8349,
8350,
8351,
8352,
8353,
8354,
8355,
8356,
8357,
8358,
8359,
8360,
8361,
8362,
8363,
4869,
4461,
8364,
8365,
8366,
8367,
8368,
8369,
8370,
4870,
8371,
8372,
8373,
8374,
8375,
8376,
8377,
8378,
8379,
8380,
8381,
8382,
8383,
8384,
8385,
8386,
8387,
8388,
8389,
8390,
8391,
8392,
8393,
8394,
8395,
8396,
8397,
8398,
8399,
8400,
8401,
8402,
8403,
8404,
8405,
8406,
8407,
8408,
8409,
8410,
4871,
8411,
8412,
8413,
8414,
8415,
8416,
8417,
8418,
8419,
8420,
8421,
8422,
4462,
8423,
8424,
8425,
8426,
8427,
8428,
8429,
8430,
8431,
8432,
8433,
2986,
8434,
8435,
8436,
8437,
8438,
8439,
8440,
8441,
8442,
8443,
8444,
8445,
8446,
8447,
8448,
8449,
8450,
8451,
8452,
8453,
8454,
8455,
8456,
8457,
8458,
8459,
8460,
8461,
8462,
8463,
8464,
8465,
8466,
8467,
8468,
8469,
8470,
8471,
8472,
8473,
8474,
8475,
8476,
8477,
8478,
4180,
8479,
8480,
8481,
8482,
8483,
8484,
8485,
8486,
8487,
8488,
8489,
8490,
8491,
8492,
8493,
8494,
8495,
8496,
8497,
8498,
8499,
8500,
8501,
8502,
8503,
8504,
8505,
8506,
8507,
8508,
8509,
8510,
8511,
8512,
8513,
8514,
8515,
8516,
8517,
8518,
8519,
8520,
8521,
8522,
8523,
8524,
8525,
8526,
8527,
8528,
8529,
8530,
8531,
8532,
8533,
8534,
8535,
8536,
8537,
8538,
8539,
8540,
8541,
8542,
8543,
8544,
8545,
8546,
8547,
8548,
8549,
8550,
8551,
8552,
8553,
8554,
8555,
8556,
8557,
8558,
8559,
8560,
8561,
8562,
8563,
8564,
4872,
8565,
8566,
8567,
8568,
8569,
8570,
8571,
8572,
8573,
4873,
8574,
8575,
8576,
8577,
8578,
8579,
8580,
8581,
8582,
8583,
8584,
8585,
8586,
8587,
8588,
8589,
8590,
8591,
8592,
8593,
8594,
8595,
8596,
8597,
8598,
8599,
8600,
8601,
8602,
8603,
8604,
8605,
3803,
8606,
8607,
8608,
8609,
8610,
8611,
8612,
8613,
4874,
3804,
8614,
8615,
8616,
8617,
8618,
8619,
8620,
8621,
3956,
8622,
8623,
8624,
8625,
8626,
8627,
8628,
8629,
8630,
8631,
8632,
8633,
8634,
8635,
8636,
8637,
8638,
2865,
8639,
8640,
8641,
8642,
8643,
8644,
8645,
8646,
8647,
8648,
8649,
8650,
8651,
8652,
8653,
8654,
8655,
8656,
4463,
8657,
8658,
8659,
4875,
4876,
8660,
8661,
8662,
8663,
8664,
8665,
8666,
8667,
8668,
8669,
8670,
8671,
8672,
8673,
8674,
8675,
8676,
8677,
8678,
8679,
8680,
8681,
4464,
8682,
8683,
8684,
8685,
8686,
8687,
8688,
8689,
8690,
8691,
8692,
8693,
8694,
8695,
8696,
8697,
8698,
8699,
8700,
8701,
8702,
8703,
8704,
8705,
8706,
8707,
8708,
8709,
2261,
8710,
8711,
8712,
8713,
8714,
8715,
8716,
8717,
8718,
8719,
8720,
8721,
8722,
8723,
8724,
8725,
8726,
8727,
8728,
8729,
8730,
8731,
8732,
8733,
4181,
8734,
8735,
8736,
8737,
8738,
8739,
8740,
8741,
8742,
8743,
8744,
8745,
8746,
8747,
8748,
8749,
8750,
8751,
8752,
8753,
8754,
8755,
8756,
8757,
8758,
8759,
8760,
8761,
8762,
8763,
4877,
8764,
8765,
8766,
8767,
8768,
8769,
8770,
8771,
8772,
8773,
8774,
8775,
8776,
8777,
8778,
8779,
8780,
8781,
8782,
8783,
8784,
8785,
8786,
8787,
8788,
4878,
8789,
4879,
8790,
8791,
8792,
4880,
8793,
8794,
8795,
8796,
8797,
8798,
8799,
8800,
8801,
4881,
8802,
8803,
8804,
8805,
8806,
8807,
8808,
8809,
8810,
8811,
8812,
8813,
8814,
8815,
3957,
8816,
8817,
8818,
8819,
8820,
8821,
8822,
8823,
8824,
8825,
8826,
8827,
8828,
8829,
8830,
8831,
8832,
8833,
8834,
8835,
8836,
8837,
8838,
8839,
8840,
8841,
8842,
8843,
8844,
8845,
8846,
8847,
4882,
8848,
8849,
8850,
8851,
8852,
8853,
8854,
8855,
8856,
8857,
8858,
8859,
8860,
8861,
8862,
8863,
8864,
8865,
8866,
8867,
8868,
8869,
8870,
8871,
8872,
8873,
8874,
8875,
8876,
8877,
8878,
8879,
8880,
8881,
8882,
8883,
8884,
3202,
8885,
8886,
8887,
8888,
8889,
8890,
8891,
8892,
8893,
8894,
8895,
8896,
8897,
8898,
8899,
8900,
8901,
8902,
8903,
8904,
8905,
8906,
8907,
8908,
8909,
8910,
8911,
8912,
8913,
8914,
8915,
8916,
8917,
8918,
8919,
8920,
8921,
8922,
8923,
8924,
4465,
8925,
8926,
8927,
8928,
8929,
8930,
8931,
8932,
4883,
8933,
8934,
8935,
8936,
8937,
8938,
8939,
8940,
8941,
8942,
8943,
2214,
8944,
8945,
8946,
8947,
8948,
8949,
8950,
8951,
8952,
8953,
8954,
8955,
8956,
8957,
8958,
8959,
8960,
8961,
8962,
8963,
8964,
8965,
4884,
8966,
8967,
8968,
8969,
8970,
8971,
8972,
8973,
8974,
8975,
8976,
8977,
8978,
8979,
8980,
8981,
8982,
8983,
8984,
8985,
8986,
8987,
8988,
8989,
8990,
8991,
8992,
4885,
8993,
8994,
8995,
8996,
8997,
8998,
8999,
9e3,
9001,
9002,
9003,
9004,
9005,
9006,
9007,
9008,
9009,
9010,
9011,
9012,
9013,
9014,
9015,
9016,
9017,
9018,
9019,
9020,
9021,
4182,
9022,
9023,
9024,
9025,
9026,
9027,
9028,
9029,
9030,
9031,
9032,
9033,
9034,
9035,
9036,
9037,
9038,
9039,
9040,
9041,
9042,
9043,
9044,
9045,
9046,
9047,
9048,
9049,
9050,
9051,
9052,
9053,
9054,
9055,
9056,
9057,
9058,
9059,
9060,
9061,
9062,
9063,
4886,
9064,
9065,
9066,
9067,
9068,
9069,
4887,
9070,
9071,
9072,
9073,
9074,
9075,
9076,
9077,
9078,
9079,
9080,
9081,
9082,
9083,
9084,
9085,
9086,
9087,
9088,
9089,
9090,
9091,
9092,
9093,
9094,
9095,
9096,
9097,
9098,
9099,
9100,
9101,
9102,
9103,
9104,
9105,
9106,
9107,
9108,
9109,
9110,
9111,
9112,
9113,
9114,
9115,
9116,
9117,
9118,
9119,
9120,
9121,
9122,
9123,
9124,
9125,
9126,
9127,
9128,
9129,
9130,
9131,
9132,
9133,
9134,
9135,
9136,
9137,
9138,
9139,
9140,
9141,
3958,
9142,
9143,
9144,
9145,
9146,
9147,
9148,
9149,
9150,
9151,
4888,
9152,
9153,
9154,
9155,
9156,
9157,
9158,
9159,
9160,
9161,
9162,
9163,
9164,
9165,
9166,
9167,
9168,
9169,
9170,
9171,
9172,
9173,
9174,
9175,
4889,
9176,
9177,
9178,
9179,
9180,
9181,
9182,
9183,
9184,
9185,
9186,
9187,
9188,
9189,
9190,
9191,
9192,
9193,
9194,
9195,
9196,
9197,
9198,
9199,
9200,
9201,
9202,
9203,
4890,
9204,
9205,
9206,
9207,
9208,
9209,
9210,
9211,
9212,
9213,
9214,
9215,
9216,
9217,
9218,
9219,
9220,
9221,
9222,
4466,
9223,
9224,
9225,
9226,
9227,
9228,
9229,
9230,
9231,
9232,
9233,
9234,
9235,
9236,
9237,
9238,
9239,
9240,
9241,
9242,
9243,
9244,
9245,
4891,
9246,
9247,
9248,
9249,
9250,
9251,
9252,
9253,
9254,
9255,
9256,
9257,
4892,
9258,
9259,
9260,
9261,
4893,
4894,
9262,
9263,
9264,
9265,
9266,
9267,
9268,
9269,
9270,
9271,
9272,
9273,
4467,
9274,
9275,
9276,
9277,
9278,
9279,
9280,
9281,
9282,
9283,
9284,
9285,
3673,
9286,
9287,
9288,
9289,
9290,
9291,
9292,
9293,
9294,
9295,
9296,
9297,
9298,
9299,
9300,
9301,
9302,
9303,
9304,
9305,
9306,
9307,
9308,
9309,
9310,
9311,
9312,
9313,
9314,
9315,
9316,
9317,
9318,
9319,
9320,
9321,
9322,
4895,
9323,
9324,
9325,
9326,
9327,
9328,
9329,
9330,
9331,
9332,
9333,
9334,
9335,
9336,
9337,
9338,
9339,
9340,
9341,
9342,
9343,
9344,
9345,
9346,
9347,
4468,
9348,
9349,
9350,
9351,
9352,
9353,
9354,
9355,
9356,
9357,
9358,
9359,
9360,
9361,
9362,
9363,
9364,
9365,
9366,
9367,
9368,
9369,
9370,
9371,
9372,
9373,
4896,
9374,
4469,
9375,
9376,
9377,
9378,
9379,
4897,
9380,
9381,
9382,
9383,
9384,
9385,
9386,
9387,
9388,
9389,
9390,
9391,
9392,
9393,
9394,
9395,
9396,
9397,
9398,
9399,
9400,
9401,
9402,
9403,
9404,
9405,
9406,
4470,
9407,
2751,
9408,
9409,
3674,
3552,
9410,
9411,
9412,
9413,
9414,
9415,
9416,
9417,
9418,
9419,
9420,
9421,
4898,
9422,
9423,
9424,
9425,
9426,
9427,
9428,
9429,
3959,
9430,
9431,
9432,
9433,
9434,
9435,
9436,
4471,
9437,
9438,
9439,
9440,
9441,
9442,
9443,
9444,
9445,
9446,
9447,
9448,
9449,
9450,
3348,
9451,
9452,
9453,
9454,
9455,
9456,
9457,
9458,
9459,
9460,
9461,
9462,
9463,
9464,
9465,
9466,
9467,
9468,
9469,
9470,
9471,
9472,
4899,
9473,
9474,
9475,
9476,
9477,
4900,
9478,
9479,
9480,
9481,
9482,
9483,
9484,
9485,
9486,
9487,
9488,
3349,
9489,
9490,
9491,
9492,
9493,
9494,
9495,
9496,
9497,
9498,
9499,
9500,
9501,
9502,
9503,
9504,
9505,
9506,
9507,
9508,
9509,
9510,
9511,
9512,
9513,
9514,
9515,
9516,
9517,
9518,
9519,
9520,
4901,
9521,
9522,
9523,
9524,
9525,
9526,
4902,
9527,
9528,
9529,
9530,
9531,
9532,
9533,
9534,
9535,
9536,
9537,
9538,
9539,
9540,
9541,
9542,
9543,
9544,
9545,
9546,
9547,
9548,
9549,
9550,
9551,
9552,
9553,
9554,
9555,
9556,
9557,
9558,
9559,
9560,
9561,
9562,
9563,
9564,
9565,
9566,
9567,
9568,
9569,
9570,
9571,
9572,
9573,
9574,
9575,
9576,
9577,
9578,
9579,
9580,
9581,
9582,
9583,
9584,
3805,
9585,
9586,
9587,
9588,
9589,
9590,
9591,
9592,
9593,
9594,
9595,
9596,
9597,
9598,
9599,
9600,
9601,
9602,
4903,
9603,
9604,
9605,
9606,
9607,
4904,
9608,
9609,
9610,
9611,
9612,
9613,
9614,
4905,
9615,
9616,
9617,
9618,
9619,
9620,
9621,
9622,
9623,
9624,
9625,
9626,
9627,
9628,
9629,
9630,
9631,
9632,
4906,
9633,
9634,
9635,
9636,
9637,
9638,
9639,
9640,
9641,
9642,
9643,
4907,
9644,
9645,
9646,
9647,
9648,
9649,
9650,
9651,
9652,
9653,
9654,
9655,
9656,
9657,
9658,
9659,
9660,
9661,
9662,
9663,
9664,
9665,
9666,
9667,
9668,
9669,
9670,
9671,
9672,
4183,
9673,
9674,
9675,
9676,
9677,
4908,
9678,
9679,
9680,
9681,
4909,
9682,
9683,
9684,
9685,
9686,
9687,
9688,
9689,
9690,
4910,
9691,
9692,
9693,
3675,
9694,
9695,
9696,
2945,
9697,
9698,
9699,
9700,
9701,
9702,
9703,
9704,
9705,
4911,
9706,
9707,
9708,
9709,
9710,
9711,
9712,
9713,
9714,
9715,
9716,
9717,
9718,
9719,
9720,
9721,
9722,
9723,
9724,
9725,
9726,
9727,
9728,
9729,
9730,
9731,
9732,
9733,
9734,
9735,
4912,
9736,
9737,
9738,
9739,
9740,
4913,
9741,
9742,
9743,
9744,
9745,
9746,
9747,
9748,
9749,
9750,
9751,
9752,
9753,
9754,
9755,
9756,
9757,
9758,
4914,
9759,
9760,
9761,
9762,
9763,
9764,
9765,
9766,
9767,
9768,
9769,
9770,
9771,
9772,
9773,
9774,
9775,
9776,
9777,
9778,
9779,
9780,
9781,
9782,
4915,
9783,
9784,
9785,
9786,
9787,
9788,
9789,
9790,
9791,
9792,
9793,
4916,
9794,
9795,
9796,
9797,
9798,
9799,
9800,
9801,
9802,
9803,
9804,
9805,
9806,
9807,
9808,
9809,
9810,
9811,
9812,
9813,
9814,
9815,
9816,
9817,
9818,
9819,
9820,
9821,
9822,
9823,
9824,
9825,
9826,
9827,
9828,
9829,
9830,
9831,
9832,
9833,
9834,
9835,
9836,
9837,
9838,
9839,
9840,
9841,
9842,
9843,
9844,
9845,
9846,
9847,
9848,
9849,
9850,
9851,
9852,
9853,
9854,
9855,
9856,
9857,
9858,
9859,
9860,
9861,
9862,
9863,
9864,
9865,
9866,
9867,
9868,
4917,
9869,
9870,
9871,
9872,
9873,
9874,
9875,
9876,
9877,
9878,
9879,
9880,
9881,
9882,
9883,
9884,
9885,
9886,
9887,
9888,
9889,
9890,
9891,
9892,
4472,
9893,
9894,
9895,
9896,
9897,
3806,
9898,
9899,
9900,
9901,
9902,
9903,
9904,
9905,
9906,
9907,
9908,
9909,
9910,
9911,
9912,
9913,
9914,
4918,
9915,
9916,
9917,
4919,
9918,
9919,
9920,
9921,
4184,
9922,
9923,
9924,
9925,
9926,
9927,
9928,
9929,
9930,
9931,
9932,
9933,
9934,
9935,
9936,
9937,
9938,
9939,
9940,
9941,
9942,
9943,
9944,
9945,
9946,
4920,
9947,
9948,
9949,
9950,
9951,
9952,
9953,
9954,
9955,
4185,
9956,
9957,
9958,
9959,
9960,
9961,
9962,
9963,
9964,
9965,
4921,
9966,
9967,
9968,
4473,
9969,
9970,
9971,
9972,
9973,
9974,
9975,
9976,
9977,
4474,
9978,
9979,
9980,
9981,
9982,
9983,
9984,
9985,
9986,
9987,
9988,
9989,
9990,
9991,
9992,
9993,
9994,
9995,
9996,
9997,
9998,
9999,
1e4,
10001,
10002,
10003,
10004,
10005,
10006,
10007,
10008,
10009,
10010,
10011,
10012,
10013,
10014,
10015,
10016,
10017,
10018,
10019,
10020,
10021,
4922,
10022,
4923,
10023,
10024,
10025,
10026,
10027,
10028,
10029,
10030,
10031,
10032,
10033,
10034,
10035,
10036,
10037,
10038,
10039,
10040,
10041,
10042,
10043,
10044,
10045,
10046,
10047,
10048,
4924,
10049,
10050,
10051,
10052,
10053,
10054,
10055,
10056,
10057,
10058,
10059,
10060,
10061,
10062,
10063,
10064,
10065,
10066,
10067,
10068,
10069,
10070,
10071,
10072,
10073,
10074,
10075,
10076,
10077,
10078,
10079,
10080,
10081,
10082,
10083,
10084,
10085,
10086,
10087,
4475,
10088,
10089,
10090,
10091,
10092,
10093,
10094,
10095,
10096,
10097,
4476,
10098,
10099,
10100,
10101,
10102,
10103,
10104,
10105,
10106,
10107,
10108,
10109,
10110,
10111,
2174,
10112,
10113,
10114,
10115,
10116,
10117,
10118,
10119,
10120,
10121,
10122,
10123,
10124,
10125,
10126,
10127,
10128,
10129,
10130,
10131,
10132,
10133,
10134,
10135,
10136,
10137,
10138,
10139,
10140,
3807,
4186,
4925,
10141,
10142,
10143,
10144,
10145,
10146,
10147,
4477,
4187,
10148,
10149,
10150,
10151,
10152,
10153,
4188,
10154,
10155,
10156,
10157,
10158,
10159,
10160,
10161,
4926,
10162,
10163,
10164,
10165,
10166,
10167,
10168,
10169,
10170,
10171,
10172,
10173,
10174,
10175,
10176,
10177,
10178,
10179,
10180,
10181,
10182,
10183,
10184,
10185,
10186,
10187,
10188,
10189,
10190,
10191,
10192,
3203,
10193,
10194,
10195,
10196,
10197,
10198,
10199,
10200,
4478,
10201,
10202,
10203,
10204,
4479,
10205,
10206,
10207,
10208,
10209,
10210,
10211,
10212,
10213,
10214,
10215,
10216,
10217,
10218,
10219,
10220,
10221,
10222,
10223,
10224,
10225,
10226,
10227,
10228,
10229,
10230,
10231,
10232,
10233,
10234,
4927,
10235,
10236,
10237,
10238,
10239,
10240,
10241,
10242,
10243,
10244,
10245,
10246,
10247,
10248,
10249,
10250,
10251,
10252,
10253,
10254,
10255,
10256,
10257,
10258,
10259,
10260,
10261,
10262,
10263,
10264,
10265,
10266,
10267,
10268,
10269,
10270,
10271,
10272,
10273,
4480,
4928,
4929,
10274,
10275,
10276,
10277,
10278,
10279,
10280,
10281,
10282,
10283,
10284,
10285,
10286,
10287,
10288,
10289,
10290,
10291,
10292,
10293,
10294,
10295,
10296,
10297,
10298,
10299,
10300,
10301,
10302,
10303,
10304,
10305,
10306,
10307,
10308,
10309,
10310,
10311,
10312,
10313,
10314,
10315,
10316,
10317,
10318,
10319,
10320,
10321,
10322,
10323,
10324,
10325,
10326,
10327,
10328,
10329,
10330,
10331,
10332,
10333,
10334,
4930,
10335,
10336,
10337,
10338,
10339,
10340,
10341,
10342,
4931,
10343,
10344,
10345,
10346,
10347,
10348,
10349,
10350,
10351,
10352,
10353,
10354,
10355,
3088,
10356,
2786,
10357,
10358,
10359,
10360,
4189,
10361,
10362,
10363,
10364,
10365,
10366,
10367,
10368,
10369,
10370,
10371,
10372,
10373,
10374,
10375,
4932,
10376,
10377,
10378,
10379,
10380,
10381,
10382,
10383,
10384,
10385,
10386,
10387,
10388,
10389,
10390,
10391,
10392,
4933,
10393,
10394,
10395,
4934,
10396,
10397,
10398,
10399,
10400,
10401,
10402,
10403,
10404,
10405,
10406,
10407,
10408,
10409,
10410,
10411,
10412,
3446,
10413,
10414,
10415,
10416,
10417,
10418,
10419,
10420,
10421,
10422,
10423,
4935,
10424,
10425,
10426,
10427,
10428,
10429,
10430,
4936,
10431,
10432,
10433,
10434,
10435,
10436,
10437,
10438,
10439,
10440,
10441,
10442,
10443,
4937,
10444,
10445,
10446,
10447,
4481,
10448,
10449,
10450,
10451,
10452,
10453,
10454,
10455,
10456,
10457,
10458,
10459,
10460,
10461,
10462,
10463,
10464,
10465,
10466,
10467,
10468,
10469,
10470,
10471,
10472,
10473,
10474,
10475,
10476,
10477,
10478,
10479,
10480,
10481,
10482,
10483,
10484,
10485,
10486,
10487,
10488,
10489,
10490,
10491,
10492,
10493,
10494,
10495,
10496,
10497,
10498,
10499,
10500,
10501,
10502,
10503,
10504,
10505,
4938,
10506,
10507,
10508,
10509,
10510,
2552,
10511,
10512,
10513,
10514,
10515,
10516,
3447,
10517,
10518,
10519,
10520,
10521,
10522,
10523,
10524,
10525,
10526,
10527,
10528,
10529,
10530,
10531,
10532,
10533,
10534,
10535,
10536,
10537,
10538,
10539,
10540,
10541,
10542,
10543,
4482,
10544,
4939,
10545,
10546,
10547,
10548,
10549,
10550,
10551,
10552,
10553,
10554,
10555,
10556,
10557,
10558,
10559,
10560,
10561,
10562,
10563,
10564,
10565,
10566,
10567,
3676,
4483,
10568,
10569,
10570,
10571,
10572,
3448,
10573,
10574,
10575,
10576,
10577,
10578,
10579,
10580,
10581,
10582,
10583,
10584,
10585,
10586,
10587,
10588,
10589,
10590,
10591,
10592,
10593,
10594,
10595,
10596,
10597,
10598,
10599,
10600,
10601,
10602,
10603,
10604,
10605,
10606,
10607,
10608,
10609,
10610,
10611,
10612,
10613,
10614,
10615,
10616,
10617,
10618,
10619,
10620,
10621,
10622,
10623,
10624,
10625,
10626,
10627,
4484,
10628,
10629,
10630,
10631,
10632,
4940,
10633,
10634,
10635,
10636,
10637,
10638,
10639,
10640,
10641,
10642,
10643,
10644,
10645,
10646,
10647,
10648,
10649,
10650,
10651,
10652,
10653,
10654,
10655,
10656,
4941,
10657,
10658,
10659,
2599,
10660,
10661,
10662,
10663,
10664,
10665,
10666,
3089,
10667,
10668,
10669,
10670,
10671,
10672,
10673,
10674,
10675,
10676,
10677,
10678,
10679,
10680,
4942,
10681,
10682,
10683,
10684,
10685,
10686,
10687,
10688,
10689,
10690,
10691,
10692,
10693,
10694,
10695,
10696,
10697,
4485,
10698,
10699,
10700,
10701,
10702,
10703,
10704,
4943,
10705,
3677,
10706,
10707,
10708,
10709,
10710,
10711,
10712,
4944,
10713,
10714,
10715,
10716,
10717,
10718,
10719,
10720,
10721,
10722,
10723,
10724,
10725,
10726,
10727,
10728,
4945,
10729,
10730,
10731,
10732,
10733,
10734,
10735,
10736,
10737,
10738,
10739,
10740,
10741,
10742,
10743,
10744,
10745,
10746,
10747,
10748,
10749,
10750,
10751,
10752,
10753,
10754,
10755,
10756,
10757,
10758,
10759,
10760,
10761,
4946,
10762,
10763,
10764,
10765,
10766,
10767,
4947,
4948,
10768,
10769,
10770,
10771,
10772,
10773,
10774,
10775,
10776,
10777,
10778,
10779,
10780,
10781,
10782,
10783,
10784,
10785,
10786,
10787,
10788,
10789,
10790,
10791,
10792,
10793,
10794,
10795,
10796,
10797,
10798,
10799,
10800,
10801,
10802,
10803,
10804,
10805,
10806,
10807,
10808,
10809,
10810,
10811,
10812,
10813,
10814,
10815,
10816,
10817,
10818,
10819,
10820,
10821,
10822,
10823,
10824,
10825,
10826,
10827,
10828,
10829,
10830,
10831,
10832,
10833,
10834,
10835,
10836,
10837,
10838,
10839,
10840,
10841,
10842,
10843,
10844,
10845,
10846,
10847,
10848,
10849,
10850,
10851,
10852,
10853,
10854,
10855,
10856,
10857,
10858,
10859,
10860,
10861,
10862,
10863,
10864,
10865,
10866,
10867,
10868,
10869,
10870,
10871,
10872,
10873,
10874,
10875,
10876,
10877,
10878,
4486,
10879,
10880,
10881,
10882,
10883,
10884,
10885,
4949,
10886,
10887,
10888,
10889,
10890,
10891,
10892,
10893,
10894,
10895,
10896,
10897,
10898,
10899,
10900,
10901,
10902,
10903,
10904,
10905,
10906,
10907,
10908,
10909,
10910,
10911,
10912,
10913,
10914,
10915,
10916,
10917,
10918,
10919,
4487,
10920,
10921,
10922,
10923,
10924,
10925,
10926,
10927,
10928,
10929,
10930,
10931,
10932,
4950,
10933,
10934,
10935,
10936,
10937,
10938,
10939,
10940,
10941,
10942,
10943,
10944,
10945,
10946,
10947,
10948,
10949,
4488,
10950,
10951,
10952,
10953,
10954,
10955,
10956,
10957,
10958,
10959,
4190,
10960,
10961,
10962,
10963,
10964,
10965,
10966,
10967,
10968,
10969,
10970,
10971,
10972,
10973,
10974,
10975,
10976,
10977,
10978,
10979,
10980,
10981,
10982,
10983,
10984,
10985,
10986,
10987,
10988,
10989,
10990,
10991,
10992,
10993,
10994,
10995,
10996,
10997,
10998,
10999,
11e3,
11001,
11002,
11003,
11004,
11005,
11006,
3960,
11007,
11008,
11009,
11010,
11011,
11012,
11013,
11014,
11015,
11016,
11017,
11018,
11019,
11020,
11021,
11022,
11023,
11024,
11025,
11026,
11027,
11028,
11029,
11030,
11031,
11032,
4951,
11033,
11034,
11035,
11036,
11037,
11038,
11039,
11040,
11041,
11042,
11043,
11044,
11045,
11046,
11047,
4489,
11048,
11049,
11050,
11051,
4952,
11052,
11053,
11054,
11055,
11056,
11057,
11058,
4953,
11059,
11060,
11061,
11062,
11063,
11064,
11065,
11066,
11067,
11068,
11069,
11070,
11071,
4954,
11072,
11073,
11074,
11075,
11076,
11077,
11078,
11079,
11080,
11081,
11082,
11083,
11084,
11085,
11086,
11087,
11088,
11089,
11090,
11091,
11092,
11093,
11094,
11095,
11096,
11097,
11098,
11099,
11100,
11101,
11102,
11103,
11104,
11105,
11106,
11107,
11108,
11109,
11110,
11111,
11112,
11113,
11114,
11115,
3808,
11116,
11117,
11118,
11119,
11120,
11121,
11122,
11123,
11124,
11125,
11126,
11127,
11128,
11129,
11130,
11131,
11132,
11133,
11134,
4955,
11135,
11136,
11137,
11138,
11139,
11140,
11141,
11142,
11143,
11144,
11145,
11146,
11147,
11148,
11149,
11150,
11151,
11152,
11153,
11154,
11155,
11156,
11157,
11158,
11159,
11160,
11161,
4956,
11162,
11163,
11164,
11165,
11166,
11167,
11168,
11169,
11170,
11171,
11172,
11173,
11174,
11175,
11176,
11177,
11178,
11179,
11180,
4957,
11181,
11182,
11183,
11184,
11185,
11186,
4958,
11187,
11188,
11189,
11190,
11191,
11192,
11193,
11194,
11195,
11196,
11197,
11198,
11199,
11200,
3678,
11201,
11202,
11203,
11204,
11205,
11206,
4191,
11207,
11208,
11209,
11210,
11211,
11212,
11213,
11214,
11215,
11216,
11217,
11218,
11219,
11220,
11221,
11222,
11223,
11224,
11225,
11226,
11227,
11228,
11229,
11230,
11231,
11232,
11233,
11234,
11235,
11236,
11237,
11238,
11239,
11240,
11241,
11242,
11243,
11244,
11245,
11246,
11247,
11248,
11249,
11250,
11251,
4959,
11252,
11253,
11254,
11255,
11256,
11257,
11258,
11259,
11260,
11261,
11262,
11263,
11264,
11265,
11266,
11267,
11268,
11269,
11270,
11271,
11272,
11273,
11274,
11275,
11276,
11277,
11278,
11279,
11280,
11281,
11282,
11283,
11284,
11285,
11286,
11287,
11288,
11289,
11290,
11291,
11292,
11293,
11294,
11295,
11296,
11297,
11298,
11299,
11300,
11301,
11302,
11303,
11304,
11305,
11306,
11307,
11308,
11309,
11310,
11311,
11312,
11313,
11314,
3679,
11315,
11316,
11317,
11318,
4490,
11319,
11320,
11321,
11322,
11323,
11324,
11325,
11326,
11327,
11328,
11329,
11330,
11331,
11332,
11333,
11334,
11335,
11336,
11337,
11338,
11339,
11340,
11341,
11342,
11343,
11344,
11345,
11346,
11347,
4960,
11348,
11349,
11350,
11351,
11352,
11353,
11354,
11355,
11356,
11357,
11358,
11359,
11360,
11361,
11362,
11363,
11364,
11365,
11366,
11367,
11368,
11369,
11370,
11371,
11372,
11373,
11374,
11375,
11376,
11377,
3961,
4961,
11378,
11379,
11380,
11381,
11382,
11383,
11384,
11385,
11386,
11387,
11388,
11389,
11390,
11391,
11392,
11393,
11394,
11395,
11396,
11397,
4192,
11398,
11399,
11400,
11401,
11402,
11403,
11404,
11405,
11406,
11407,
11408,
11409,
11410,
11411,
4962,
11412,
11413,
11414,
11415,
11416,
11417,
11418,
11419,
11420,
11421,
11422,
11423,
11424,
11425,
11426,
11427,
11428,
11429,
11430,
11431,
11432,
11433,
11434,
11435,
11436,
11437,
11438,
11439,
11440,
11441,
11442,
11443,
11444,
11445,
11446,
11447,
11448,
11449,
11450,
11451,
11452,
11453,
11454,
11455,
11456,
11457,
11458,
11459,
11460,
11461,
11462,
11463,
11464,
11465,
11466,
11467,
11468,
11469,
4963,
11470,
11471,
4491,
11472,
11473,
11474,
11475,
4964,
11476,
11477,
11478,
11479,
11480,
11481,
11482,
11483,
11484,
11485,
11486,
11487,
11488,
11489,
11490,
11491,
11492,
4965,
11493,
11494,
11495,
11496,
11497,
11498,
11499,
11500,
11501,
11502,
11503,
11504,
11505,
11506,
11507,
11508,
11509,
11510,
11511,
11512,
11513,
11514,
11515,
11516,
11517,
11518,
11519,
11520,
11521,
11522,
11523,
11524,
11525,
11526,
11527,
11528,
11529,
3962,
11530,
11531,
11532,
11533,
11534,
11535,
11536,
11537,
11538,
11539,
11540,
11541,
11542,
11543,
11544,
11545,
11546,
11547,
11548,
11549,
11550,
11551,
11552,
11553,
11554,
11555,
11556,
11557,
11558,
11559,
11560,
11561,
11562,
11563,
11564,
4193,
4194,
11565,
11566,
11567,
11568,
11569,
11570,
11571,
11572,
11573,
11574,
11575,
11576,
11577,
11578,
11579,
11580,
11581,
11582,
11583,
11584,
11585,
11586,
11587,
11588,
11589,
11590,
11591,
4966,
4195,
11592,
11593,
11594,
11595,
11596,
11597,
11598,
11599,
11600,
11601,
11602,
11603,
11604,
3090,
11605,
11606,
11607,
11608,
11609,
11610,
4967,
11611,
11612,
11613,
11614,
11615,
11616,
11617,
11618,
11619,
11620,
11621,
11622,
11623,
11624,
11625,
11626,
11627,
11628,
11629,
11630,
11631,
11632,
11633,
11634,
11635,
11636,
11637,
11638,
11639,
11640,
11641,
11642,
11643,
11644,
11645,
11646,
11647,
11648,
11649,
11650,
11651,
11652,
11653,
11654,
11655,
11656,
11657,
11658,
11659,
11660,
11661,
11662,
11663,
11664,
11665,
11666,
11667,
11668,
11669,
11670,
11671,
11672,
11673,
11674,
4968,
11675,
11676,
11677,
11678,
11679,
11680,
11681,
11682,
11683,
11684,
11685,
11686,
11687,
11688,
11689,
11690,
11691,
11692,
11693,
3809,
11694,
11695,
11696,
11697,
11698,
11699,
11700,
11701,
11702,
11703,
11704,
11705,
11706,
11707,
11708,
11709,
11710,
11711,
11712,
11713,
11714,
11715,
11716,
11717,
11718,
3553,
11719,
11720,
11721,
11722,
11723,
11724,
11725,
11726,
11727,
11728,
11729,
11730,
4969,
11731,
11732,
11733,
11734,
11735,
11736,
11737,
11738,
11739,
11740,
4492,
11741,
11742,
11743,
11744,
11745,
11746,
11747,
11748,
11749,
11750,
11751,
11752,
4970,
11753,
11754,
11755,
11756,
11757,
11758,
11759,
11760,
11761,
11762,
11763,
11764,
11765,
11766,
11767,
11768,
11769,
11770,
11771,
11772,
11773,
11774,
11775,
11776,
11777,
11778,
11779,
11780,
11781,
11782,
11783,
11784,
11785,
11786,
11787,
11788,
11789,
11790,
4971,
11791,
11792,
11793,
11794,
11795,
11796,
11797,
4972,
11798,
11799,
11800,
11801,
11802,
11803,
11804,
11805,
11806,
11807,
11808,
11809,
11810,
4973,
11811,
11812,
11813,
11814,
11815,
11816,
11817,
11818,
11819,
11820,
11821,
11822,
11823,
11824,
11825,
11826,
11827,
11828,
11829,
11830,
11831,
11832,
11833,
11834,
3680,
3810,
11835,
11836,
4974,
11837,
11838,
11839,
11840,
11841,
11842,
11843,
11844,
11845,
11846,
11847,
11848,
11849,
11850,
11851,
11852,
11853,
11854,
11855,
11856,
11857,
11858,
11859,
11860,
11861,
11862,
11863,
11864,
11865,
11866,
11867,
11868,
11869,
11870,
11871,
11872,
11873,
11874,
11875,
11876,
11877,
11878,
11879,
11880,
11881,
11882,
11883,
11884,
4493,
11885,
11886,
11887,
11888,
11889,
11890,
11891,
11892,
11893,
11894,
11895,
11896,
11897,
11898,
11899,
11900,
11901,
11902,
11903,
11904,
11905,
11906,
11907,
11908,
11909,
11910,
11911,
11912,
11913,
11914,
11915,
4975,
11916,
11917,
11918,
11919,
11920,
11921,
11922,
11923,
11924,
11925,
11926,
11927,
11928,
11929,
11930,
11931,
11932,
11933,
11934,
11935,
11936,
11937,
11938,
11939,
11940,
11941,
11942,
11943,
11944,
11945,
11946,
11947,
11948,
11949,
4976,
11950,
11951,
11952,
11953,
11954,
11955,
11956,
11957,
11958,
11959,
11960,
11961,
11962,
11963,
11964,
11965,
11966,
11967,
11968,
11969,
11970,
11971,
11972,
11973,
11974,
11975,
11976,
11977,
11978,
11979,
11980,
11981,
11982,
11983,
11984,
11985,
11986,
11987,
4196,
11988,
11989,
11990,
11991,
11992,
4977,
11993,
11994,
11995,
11996,
11997,
11998,
11999,
12e3,
12001,
12002,
12003,
12004,
12005,
12006,
12007,
12008,
12009,
12010,
12011,
12012,
12013,
12014,
12015,
12016,
12017,
12018,
12019,
12020,
12021,
12022,
12023,
12024,
12025,
12026,
12027,
12028,
12029,
12030,
12031,
12032,
12033,
12034,
12035,
12036,
12037,
12038,
12039,
12040,
12041,
12042,
12043,
12044,
12045,
12046,
12047,
12048,
12049,
12050,
12051,
12052,
12053,
12054,
12055,
12056,
12057,
12058,
12059,
12060,
12061,
4978,
12062,
12063,
12064,
12065,
12066,
12067,
12068,
12069,
12070,
12071,
12072,
12073,
12074,
12075,
12076,
12077,
12078,
12079,
12080,
12081,
12082,
12083,
12084,
12085,
12086,
12087,
12088,
12089,
12090,
12091,
12092,
12093,
12094,
12095,
12096,
12097,
12098,
12099,
12100,
12101,
12102,
12103,
12104,
12105,
12106,
12107,
12108,
12109,
12110,
12111,
12112,
12113,
12114,
12115,
12116,
12117,
12118,
12119,
12120,
12121,
12122,
12123,
4979,
12124,
12125,
12126,
12127,
12128,
4197,
12129,
12130,
12131,
12132,
12133,
12134,
12135,
12136,
12137,
12138,
12139,
12140,
12141,
12142,
12143,
12144,
12145,
12146,
12147,
12148,
12149,
12150,
12151,
12152,
12153,
12154,
4980,
12155,
12156,
12157,
12158,
12159,
12160,
4494,
12161,
12162,
12163,
12164,
3811,
12165,
12166,
12167,
12168,
12169,
4495,
12170,
12171,
4496,
12172,
12173,
12174,
12175,
12176,
3812,
12177,
12178,
12179,
12180,
12181,
12182,
12183,
12184,
12185,
12186,
12187,
12188,
12189,
12190,
12191,
12192,
12193,
12194,
12195,
12196,
12197,
12198,
12199,
12200,
12201,
12202,
12203,
12204,
12205,
12206,
12207,
12208,
12209,
12210,
12211,
12212,
12213,
12214,
12215,
12216,
12217,
12218,
12219,
12220,
12221,
4981,
12222,
12223,
12224,
12225,
12226,
12227,
12228,
12229,
12230,
12231,
12232,
12233,
12234,
12235,
4982,
12236,
12237,
12238,
12239,
12240,
12241,
12242,
12243,
12244,
12245,
4983,
12246,
12247,
12248,
12249,
4984,
12250,
12251,
12252,
12253,
12254,
12255,
12256,
12257,
12258,
12259,
12260,
12261,
12262,
12263,
12264,
4985,
12265,
4497,
12266,
12267,
12268,
12269,
12270,
12271,
12272,
12273,
12274,
12275,
12276,
12277,
12278,
12279,
12280,
12281,
12282,
12283,
12284,
12285,
12286,
12287,
4986,
12288,
12289,
12290,
12291,
12292,
12293,
12294,
12295,
12296,
2473,
12297,
12298,
12299,
12300,
12301,
12302,
12303,
12304,
12305,
12306,
12307,
12308,
12309,
12310,
12311,
12312,
12313,
12314,
12315,
12316,
12317,
12318,
12319,
3963,
12320,
12321,
12322,
12323,
12324,
12325,
12326,
12327,
12328,
12329,
12330,
12331,
12332,
4987,
12333,
12334,
12335,
12336,
12337,
12338,
12339,
12340,
12341,
12342,
12343,
12344,
12345,
12346,
12347,
12348,
12349,
12350,
12351,
12352,
12353,
12354,
12355,
12356,
12357,
12358,
12359,
3964,
12360,
12361,
12362,
12363,
12364,
12365,
12366,
12367,
12368,
12369,
12370,
3965,
12371,
12372,
12373,
12374,
12375,
12376,
12377,
12378,
12379,
12380,
12381,
12382,
12383,
12384,
12385,
12386,
12387,
12388,
12389,
12390,
12391,
12392,
12393,
12394,
12395,
12396,
12397,
12398,
12399,
12400,
12401,
12402,
12403,
12404,
12405,
12406,
12407,
12408,
4988,
12409,
12410,
12411,
12412,
12413,
12414,
12415,
12416,
12417,
12418,
12419,
12420,
12421,
12422,
12423,
12424,
12425,
12426,
12427,
12428,
12429,
12430,
12431,
12432,
12433,
12434,
12435,
12436,
12437,
12438,
3554,
12439,
12440,
12441,
12442,
12443,
12444,
12445,
12446,
12447,
12448,
12449,
12450,
12451,
12452,
12453,
12454,
12455,
12456,
12457,
12458,
12459,
12460,
12461,
12462,
12463,
12464,
4989,
12465,
12466,
12467,
12468,
12469,
12470,
12471,
12472,
12473,
12474,
12475,
12476,
12477,
12478,
12479,
12480,
4990,
12481,
12482,
12483,
12484,
12485,
12486,
12487,
12488,
12489,
4498,
12490,
12491,
12492,
12493,
12494,
12495,
12496,
12497,
12498,
12499,
12500,
12501,
12502,
12503,
12504,
12505,
12506,
12507,
12508,
12509,
12510,
12511,
12512,
12513,
12514,
12515,
12516,
12517,
12518,
12519,
12520,
12521,
12522,
12523,
12524,
12525,
12526,
12527,
12528,
12529,
12530,
12531,
12532,
12533,
12534,
12535,
12536,
12537,
12538,
12539,
12540,
12541,
12542,
12543,
12544,
12545,
12546,
12547,
12548,
12549,
12550,
12551,
4991,
12552,
12553,
12554,
12555,
12556,
12557,
12558,
12559,
12560,
12561,
12562,
12563,
12564,
12565,
12566,
12567,
12568,
12569,
12570,
12571,
12572,
12573,
12574,
12575,
12576,
12577,
12578,
3036,
12579,
12580,
12581,
12582,
12583,
3966,
12584,
12585,
12586,
12587,
12588,
12589,
12590,
12591,
12592,
12593,
12594,
12595,
12596,
12597,
12598,
12599,
12600,
12601,
12602,
12603,
12604,
12605,
12606,
12607,
12608,
12609,
12610,
12611,
12612,
12613,
12614,
12615,
12616,
12617,
12618,
12619,
12620,
12621,
12622,
12623,
12624,
12625,
12626,
12627,
12628,
12629,
12630,
12631,
12632,
12633,
12634,
12635,
12636,
12637,
12638,
12639,
12640,
12641,
12642,
12643,
12644,
12645,
12646,
4499,
12647,
12648,
12649,
12650,
12651,
12652,
12653,
12654,
12655,
12656,
12657,
12658,
12659,
12660,
12661,
12662,
12663,
12664,
12665,
12666,
12667,
12668,
12669,
12670,
12671,
12672,
12673,
12674,
12675,
12676,
12677,
12678,
12679,
12680,
12681,
12682,
12683,
12684,
12685,
12686,
12687,
12688,
12689,
12690,
12691,
12692,
12693,
12694,
12695,
12696,
12697,
12698,
4992,
12699,
12700,
12701,
12702,
12703,
12704,
12705,
12706,
12707,
12708,
12709,
12710,
12711,
12712,
12713,
12714,
12715,
12716,
12717,
12718,
12719,
12720,
12721,
12722,
12723,
12724,
12725,
12726,
12727,
12728,
12729,
12730,
12731,
12732,
12733,
12734,
12735,
12736,
12737,
12738,
12739,
12740,
12741,
12742,
12743,
12744,
12745,
12746,
12747,
12748,
12749,
12750,
12751,
12752,
12753,
12754,
12755,
12756,
12757,
12758,
12759,
12760,
12761,
12762,
12763,
12764,
12765,
12766,
12767,
12768,
12769,
12770,
12771,
12772,
12773,
12774,
12775,
12776,
12777,
12778,
4993,
2175,
12779,
12780,
12781,
12782,
12783,
12784,
12785,
12786,
4500,
12787,
12788,
12789,
12790,
12791,
12792,
12793,
12794,
12795,
12796,
12797,
12798,
12799,
12800,
12801,
12802,
12803,
12804,
12805,
12806,
12807,
12808,
12809,
12810,
12811,
12812,
12813,
12814,
12815,
12816,
12817,
12818,
12819,
12820,
12821,
12822,
12823,
12824,
12825,
12826,
4198,
3967,
12827,
12828,
12829,
12830,
12831,
12832,
12833,
12834,
12835,
12836,
12837,
12838,
12839,
12840,
12841,
12842,
12843,
12844,
12845,
12846,
12847,
12848,
12849,
12850,
12851,
12852,
12853,
12854,
12855,
12856,
12857,
12858,
12859,
12860,
12861,
4199,
12862,
12863,
12864,
12865,
12866,
12867,
12868,
12869,
12870,
12871,
12872,
12873,
12874,
12875,
12876,
12877,
12878,
12879,
12880,
12881,
12882,
12883,
12884,
12885,
12886,
12887,
4501,
12888,
12889,
12890,
12891,
12892,
12893,
12894,
12895,
12896,
12897,
12898,
12899,
12900,
12901,
12902,
12903,
12904,
12905,
12906,
12907,
12908,
12909,
12910,
12911,
12912,
4994,
12913,
12914,
12915,
12916,
12917,
12918,
12919,
12920,
12921,
12922,
12923,
12924,
12925,
12926,
12927,
12928,
12929,
12930,
12931,
12932,
12933,
12934,
12935,
12936,
12937,
12938,
12939,
12940,
12941,
12942,
12943,
12944,
12945,
12946,
12947,
12948,
12949,
12950,
12951,
12952,
12953,
12954,
12955,
12956,
1772,
12957,
12958,
12959,
12960,
12961,
12962,
12963,
12964,
12965,
12966,
12967,
12968,
12969,
12970,
12971,
12972,
12973,
12974,
12975,
12976,
12977,
12978,
12979,
12980,
12981,
12982,
12983,
12984,
12985,
12986,
12987,
12988,
12989,
12990,
12991,
12992,
12993,
12994,
12995,
12996,
12997,
4502,
12998,
4503,
12999,
13e3,
13001,
13002,
13003,
4504,
13004,
13005,
13006,
13007,
13008,
13009,
13010,
13011,
13012,
13013,
13014,
13015,
13016,
13017,
13018,
13019,
13020,
13021,
13022,
13023,
13024,
13025,
13026,
13027,
13028,
13029,
3449,
13030,
13031,
13032,
13033,
13034,
13035,
13036,
13037,
13038,
13039,
13040,
13041,
13042,
13043,
13044,
13045,
13046,
13047,
13048,
13049,
13050,
13051,
13052,
13053,
13054,
13055,
13056,
13057,
13058,
13059,
13060,
13061,
13062,
13063,
13064,
13065,
13066,
13067,
13068,
13069,
13070,
13071,
13072,
13073,
13074,
13075,
13076,
13077,
13078,
13079,
13080,
13081,
13082,
13083,
13084,
13085,
13086,
13087,
13088,
13089,
13090,
13091,
13092,
13093,
13094,
13095,
13096,
13097,
13098,
13099,
13100,
13101,
13102,
13103,
13104,
13105,
13106,
13107,
13108,
13109,
13110,
13111,
13112,
13113,
13114,
13115,
13116,
13117,
13118,
3968,
13119,
4995,
13120,
13121,
13122,
13123,
13124,
13125,
13126,
13127,
4505,
13128,
13129,
13130,
13131,
13132,
13133,
13134,
4996,
4506,
13135,
13136,
13137,
13138,
13139,
4997,
13140,
13141,
13142,
13143,
13144,
13145,
13146,
13147,
13148,
13149,
13150,
13151,
13152,
13153,
13154,
13155,
13156,
13157,
13158,
13159,
4998,
13160,
13161,
13162,
13163,
13164,
13165,
13166,
13167,
13168,
13169,
13170,
13171,
13172,
13173,
13174,
13175,
13176,
4999,
13177,
13178,
13179,
13180,
13181,
13182,
13183,
13184,
13185,
13186,
13187,
13188,
13189,
13190,
13191,
13192,
13193,
13194,
13195,
13196,
13197,
13198,
13199,
13200,
13201,
13202,
13203,
13204,
13205,
13206,
5e3,
13207,
13208,
13209,
13210,
13211,
13212,
13213,
13214,
13215,
13216,
13217,
13218,
13219,
13220,
13221,
13222,
13223,
13224,
13225,
13226,
13227,
4200,
5001,
13228,
13229,
13230,
13231,
13232,
13233,
13234,
13235,
13236,
13237,
13238,
13239,
13240,
3969,
13241,
13242,
13243,
13244,
3970,
13245,
13246,
13247,
13248,
13249,
13250,
13251,
13252,
13253,
13254,
13255,
13256,
13257,
13258,
13259,
13260,
13261,
13262,
13263,
13264,
13265,
13266,
13267,
13268,
3450,
13269,
13270,
13271,
13272,
13273,
13274,
13275,
13276,
5002,
13277,
13278,
13279,
13280,
13281,
13282,
13283,
13284,
13285,
13286,
13287,
13288,
13289,
13290,
13291,
13292,
13293,
13294,
13295,
13296,
13297,
13298,
13299,
13300,
13301,
13302,
3813,
13303,
13304,
13305,
13306,
13307,
13308,
13309,
13310,
13311,
13312,
13313,
13314,
13315,
13316,
13317,
13318,
13319,
13320,
13321,
13322,
13323,
13324,
13325,
13326,
13327,
13328,
4507,
13329,
13330,
13331,
13332,
13333,
13334,
13335,
13336,
13337,
13338,
13339,
13340,
13341,
5003,
13342,
13343,
13344,
13345,
13346,
13347,
13348,
13349,
13350,
13351,
13352,
13353,
13354,
13355,
13356,
13357,
13358,
13359,
13360,
13361,
13362,
13363,
13364,
13365,
13366,
13367,
5004,
13368,
13369,
13370,
13371,
13372,
13373,
13374,
13375,
13376,
13377,
13378,
13379,
13380,
13381,
13382,
13383,
13384,
13385,
13386,
13387,
13388,
13389,
13390,
13391,
13392,
13393,
13394,
13395,
13396,
13397,
13398,
13399,
13400,
13401,
13402,
13403,
13404,
13405,
13406,
13407,
13408,
13409,
13410,
13411,
13412,
13413,
13414,
13415,
13416,
13417,
13418,
13419,
13420,
13421,
13422,
13423,
13424,
13425,
13426,
13427,
13428,
13429,
13430,
13431,
13432,
4508,
13433,
13434,
13435,
4201,
13436,
13437,
13438,
13439,
13440,
13441,
13442,
13443,
13444,
13445,
13446,
13447,
13448,
13449,
13450,
13451,
13452,
13453,
13454,
13455,
13456,
13457,
5005,
13458,
13459,
13460,
13461,
13462,
13463,
13464,
13465,
13466,
13467,
13468,
13469,
13470,
4509,
13471,
13472,
13473,
13474,
13475,
13476,
13477,
13478,
13479,
13480,
13481,
13482,
13483,
13484,
13485,
13486,
13487,
13488,
13489,
13490,
13491,
13492,
13493,
13494,
13495,
13496,
13497,
13498,
13499,
13500,
13501,
13502,
13503,
13504,
13505,
13506,
13507,
13508,
13509,
13510,
13511,
13512,
13513,
13514,
13515,
13516,
13517,
13518,
13519,
13520,
13521,
13522,
13523,
13524,
13525,
13526,
13527,
13528,
13529,
13530,
13531,
13532,
13533,
13534,
13535,
13536,
13537,
13538,
13539,
13540,
13541,
13542,
13543,
13544,
13545,
13546,
13547,
13548,
13549,
13550,
13551,
13552,
13553,
13554,
13555,
13556,
13557,
13558,
13559,
13560,
13561,
13562,
13563,
13564,
13565,
13566,
13567,
13568,
13569,
13570,
13571,
13572,
13573,
13574,
13575,
13576,
13577,
13578,
13579,
13580,
13581,
13582,
13583,
13584,
13585,
13586,
13587,
13588,
13589,
13590,
13591,
13592,
13593,
13594,
13595,
13596,
13597,
13598,
13599,
13600,
13601,
13602,
13603,
13604,
13605,
13606,
13607,
13608,
13609,
13610,
13611,
13612,
13613,
13614,
13615,
13616,
13617,
13618,
13619,
13620,
13621,
13622,
13623,
13624,
13625,
13626,
13627,
13628,
13629,
13630,
13631,
13632,
13633,
13634,
13635,
13636,
13637,
13638,
13639,
13640,
13641,
13642,
5006,
13643,
13644,
13645,
13646,
13647,
13648,
13649,
13650,
13651,
5007,
13652,
13653,
13654,
13655,
13656,
13657,
13658,
13659,
13660,
13661,
13662,
13663,
13664,
13665,
13666,
13667,
13668,
13669,
13670,
13671,
13672,
13673,
13674,
13675,
13676,
13677,
13678,
13679,
13680,
13681,
13682,
13683,
13684,
13685,
13686,
13687,
13688,
13689,
13690,
13691,
13692,
13693,
13694,
13695,
13696,
13697,
13698,
13699,
13700,
13701,
13702,
13703,
13704,
13705,
13706,
13707,
13708,
13709,
13710,
13711,
13712,
13713,
13714,
13715,
13716,
13717,
13718,
13719,
13720,
13721,
13722,
13723,
13724,
13725,
13726,
13727,
13728,
13729,
13730,
13731,
13732,
13733,
13734,
13735,
13736,
13737,
13738,
13739,
13740,
13741,
13742,
13743,
13744,
13745,
13746,
13747,
13748,
13749,
13750,
13751,
13752,
13753,
13754,
13755,
13756,
13757,
13758,
13759,
13760,
13761,
13762,
13763,
13764,
13765,
13766,
13767,
13768,
13769,
13770,
13771,
13772,
13773,
13774,
3273,
13775,
13776,
13777,
13778,
13779,
13780,
13781,
13782,
13783,
13784,
13785,
13786,
13787,
13788,
13789,
13790,
13791,
13792,
13793,
13794,
13795,
13796,
13797,
13798,
13799,
13800,
13801,
13802,
13803,
13804,
13805,
13806,
13807,
13808,
13809,
13810,
13811,
13812,
13813,
13814,
13815,
13816,
13817,
13818,
13819,
13820,
13821,
13822,
13823,
13824,
13825,
13826,
13827,
13828,
13829,
13830,
13831,
13832,
13833,
13834,
13835,
13836,
13837,
13838,
13839,
13840,
13841,
13842,
13843,
13844,
13845,
13846,
13847,
13848,
13849,
13850,
13851,
13852,
13853,
13854,
13855,
13856,
13857,
13858,
13859,
13860,
13861,
13862,
13863,
13864,
13865,
13866,
13867,
13868,
13869,
13870,
13871,
13872,
13873,
13874,
13875,
13876,
13877,
13878,
13879,
13880,
13881,
13882,
13883,
13884,
13885,
13886,
13887,
13888,
13889,
13890,
13891,
13892,
13893,
13894,
13895,
13896,
13897,
13898,
13899,
13900,
13901,
13902,
13903,
13904,
13905,
13906,
13907,
13908,
13909,
13910,
13911,
13912,
13913,
13914,
13915,
13916,
13917,
13918,
13919,
13920,
13921,
13922,
13923,
13924,
13925,
13926,
13927,
13928,
13929,
13930,
13931,
13932,
13933,
13934,
13935,
13936,
13937,
13938,
13939,
13940,
13941,
13942,
13943,
13944,
13945,
13946,
13947,
13948,
13949,
13950,
13951,
13952,
13953,
13954,
13955,
13956,
13957,
13958,
13959,
13960,
13961,
13962,
13963,
13964,
13965,
13966,
13967,
13968,
13969,
13970,
13971,
13972
];
}
});
// node_modules/jschardet/src/chardistribution.js
var require_chardistribution = __commonJS({
"node_modules/jschardet/src/chardistribution.js"(exports) {
var jisfreq = require_jisfreq();
var euctwfreq = require_euctwfreq();
var euckrfreq = require_euckrfreq();
var gb2312freq = require_gb2312freq();
var big5freq = require_big5freq();
function CharDistributionAnalysis() {
var ENOUGH_DATA_THRESHOLD = 1024;
var SURE_YES = 0.99;
var SURE_NO = 0.01;
var MINIMUM_DATA_THRESHOLD = 3;
var self = this;
function init() {
self._mCharToFreqOrder = null;
self._mTableSize = null;
self._mTypicalDistributionRatio = null;
self.reset();
}
this.reset = function() {
this._mDone = false;
this._mTotalChars = 0;
this._mFreqChars = 0;
};
this.feed = function(aStr, aCharLen) {
if (aCharLen == 2) {
var order = this.getOrder(aStr);
} else {
order = -1;
}
if (order >= 0) {
this._mTotalChars++;
if (order < this._mTableSize) {
if (512 > this._mCharToFreqOrder[order]) {
this._mFreqChars++;
}
}
}
};
this.getConfidence = function() {
if (this._mTotalChars <= 0 || this._mFreqChars <= MINIMUM_DATA_THRESHOLD) {
return SURE_NO;
}
if (this._mTotalChars != this._mFreqChars) {
var r = this._mFreqChars / ((this._mTotalChars - this._mFreqChars) * this._mTypicalDistributionRatio);
if (r < SURE_YES) {
return r;
}
}
return SURE_YES;
};
this.gotEnoughData = function() {
return this._mTotalChars > ENOUGH_DATA_THRESHOLD;
};
this.getOrder = function(aStr) {
return -1;
};
init();
}
exports.CharDistributionAnalysis = CharDistributionAnalysis;
function EUCTWDistributionAnalysis() {
CharDistributionAnalysis.apply(this);
var self = this;
function init() {
self._mCharToFreqOrder = euctwfreq.EUCTWCharToFreqOrder;
self._mTableSize = euctwfreq.EUCTW_TABLE_SIZE;
self._mTypicalDistributionRatio = euctwfreq.EUCTW_TYPICAL_DISTRIBUTION_RATIO;
}
this.getOrder = function(aStr) {
if (aStr.charCodeAt(0) >= 196) {
return 94 * (aStr.charCodeAt(0) - 196) + aStr.charCodeAt(1) - 161;
} else {
return -1;
}
};
init();
}
EUCTWDistributionAnalysis.prototype = new CharDistributionAnalysis();
exports.EUCTWDistributionAnalysis = EUCTWDistributionAnalysis;
function EUCKRDistributionAnalysis() {
CharDistributionAnalysis.apply(this);
var self = this;
function init() {
self._mCharToFreqOrder = euckrfreq.EUCKRCharToFreqOrder;
self._mTableSize = euckrfreq.EUCKR_TABLE_SIZE;
self._mTypicalDistributionRatio = euckrfreq.EUCKR_TYPICAL_DISTRIBUTION_RATIO;
}
this.getOrder = function(aStr) {
if (aStr.charCodeAt(0) >= 176) {
return 94 * (aStr.charCodeAt(0) - 176) + aStr.charCodeAt(1) - 161;
} else {
return -1;
}
};
init();
}
EUCKRDistributionAnalysis.prototype = new CharDistributionAnalysis();
exports.EUCKRDistributionAnalysis = EUCKRDistributionAnalysis;
function GB2312DistributionAnalysis() {
CharDistributionAnalysis.apply(this);
var self = this;
function init() {
self._mCharToFreqOrder = gb2312freq.GB2312CharToFreqOrder;
self._mTableSize = gb2312freq.GB2312_TABLE_SIZE;
self._mTypicalDistributionRatio = gb2312freq.GB2312_TYPICAL_DISTRIBUTION_RATIO;
}
this.getOrder = function(aStr) {
if (aStr.charCodeAt(0) >= 176 && aStr.charCodeAt(1) >= 161) {
return 94 * (aStr.charCodeAt(0) - 176) + aStr.charCodeAt(1) - 161;
} else {
return -1;
}
};
init();
}
GB2312DistributionAnalysis.prototype = new CharDistributionAnalysis();
exports.GB2312DistributionAnalysis = GB2312DistributionAnalysis;
function Big5DistributionAnalysis() {
CharDistributionAnalysis.apply(this);
var self = this;
function init() {
self._mCharToFreqOrder = big5freq.Big5CharToFreqOrder;
self._mTableSize = big5freq.BIG5_TABLE_SIZE;
self._mTypicalDistributionRatio = big5freq.BIG5_TYPICAL_DISTRIBUTION_RATIO;
}
this.getOrder = function(aStr) {
if (aStr.charCodeAt(0) >= 164) {
if (aStr.charCodeAt(1) >= 161) {
return 157 * (aStr.charCodeAt(0) - 164) + aStr.charCodeAt(1) - 161 + 63;
} else {
return 157 * (aStr.charCodeAt(0) - 164) + aStr.charCodeAt(1) - 64;
}
} else {
return -1;
}
};
init();
}
Big5DistributionAnalysis.prototype = new CharDistributionAnalysis();
exports.Big5DistributionAnalysis = Big5DistributionAnalysis;
function SJISDistributionAnalysis() {
CharDistributionAnalysis.apply(this);
var self = this;
function init() {
self._mCharToFreqOrder = jisfreq.JISCharToFreqOrder;
self._mTableSize = jisfreq.JIS_TABLE_SIZE;
self._mTypicalDistributionRatio = jisfreq.JIS_TYPICAL_DISTRIBUTION_RATIO;
}
this.getOrder = function(aStr) {
if (aStr.charCodeAt(0) >= 129 && aStr.charCodeAt(0) <= 159) {
var order = 188 * (aStr.charCodeAt(0) - 129);
} else if (aStr.charCodeAt(0) >= 224 && aStr.charCodeAt(0) <= 239) {
order = 188 * (aStr.charCodeAt(0) - 224 + 31);
} else {
return -1;
}
order += aStr.charCodeAt(1) - 64;
if (aStr.charCodeAt(1) < 64 || aStr.charCodeAt(1) === 127 || aStr.charCodeAt(1) > 252) {
order = -1;
}
return order;
};
init();
}
SJISDistributionAnalysis.prototype = new CharDistributionAnalysis();
exports.SJISDistributionAnalysis = SJISDistributionAnalysis;
function EUCJPDistributionAnalysis() {
CharDistributionAnalysis.apply(this);
var self = this;
function init() {
self._mCharToFreqOrder = jisfreq.JISCharToFreqOrder;
self._mTableSize = jisfreq.JIS_TABLE_SIZE;
self._mTypicalDistributionRatio = jisfreq.JIS_TYPICAL_DISTRIBUTION_RATIO;
}
this.getOrder = function(aStr) {
if (aStr[0] >= "\xA0") {
return 94 * (aStr.charCodeAt(0) - 161) + aStr.charCodeAt(1) - 161;
} else {
return -1;
}
};
init();
}
EUCJPDistributionAnalysis.prototype = new CharDistributionAnalysis();
exports.EUCJPDistributionAnalysis = EUCJPDistributionAnalysis;
}
});
// node_modules/jschardet/src/big5prober.js
var require_big5prober = __commonJS({
"node_modules/jschardet/src/big5prober.js"(exports, module2) {
var CodingStateMachine = require_codingstatemachine();
var MultiByteCharSetProber = require_mbcharsetprober();
var Big5SMModel = require_big5();
var Big5DistributionAnalysis = require_chardistribution().Big5DistributionAnalysis;
function Big5Prober() {
MultiByteCharSetProber.apply(this);
var self = this;
function init() {
self._mCodingSM = new CodingStateMachine(Big5SMModel);
self._mDistributionAnalyzer = new Big5DistributionAnalysis();
self.reset();
}
this.getCharsetName = function() {
return "Big5";
};
init();
}
Big5Prober.prototype = new MultiByteCharSetProber();
module2.exports = Big5Prober;
}
});
// node_modules/jschardet/src/mbcssm/utf8.js
var require_utf8 = __commonJS({
"node_modules/jschardet/src/mbcssm/utf8.js"(exports, module2) {
var consts = require_constants();
var UTF8_cls = [
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
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,
1,
1,
1,
2,
2,
2,
2,
3,
3,
3,
3,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
0,
0,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
7,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
8,
9,
8,
8,
10,
11,
11,
11,
11,
11,
11,
11,
12,
13,
13,
13,
14,
15,
0,
0
];
var UTF8_st = [
consts.error,
consts.start,
consts.error,
consts.error,
consts.error,
consts.error,
12,
10,
9,
11,
8,
7,
6,
5,
4,
3,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.error,
consts.error,
5,
5,
5,
5,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
5,
5,
5,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
7,
7,
7,
7,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
7,
7,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
9,
9,
9,
9,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
9,
9,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
12,
12,
12,
12,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
12,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
12,
12,
12,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.start,
consts.start,
consts.start,
consts.start,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error
];
var UTF8CharLenTable = [0, 1, 0, 0, 0, 0, 2, 3, 3, 3, 4, 4, 5, 5, 6, 6];
module2.exports = {
"classTable": UTF8_cls,
"classFactor": 16,
"stateTable": UTF8_st,
"charLenTable": UTF8CharLenTable,
"name": "UTF-8"
};
}
});
// node_modules/jschardet/src/utf8prober.js
var require_utf8prober = __commonJS({
"node_modules/jschardet/src/utf8prober.js"(exports, module2) {
var CodingStateMachine = require_codingstatemachine();
var CharSetProber = require_charsetprober();
var constants = require_constants();
var UTF8SMModel = require_utf8();
function UTF8Prober() {
CharSetProber.apply(this);
var ONE_CHAR_PROB = 0.5;
var self = this;
function init() {
self._mCodingSM = new CodingStateMachine(UTF8SMModel);
self.reset();
}
this.reset = function() {
UTF8Prober.prototype.reset.apply(this);
this._mCodingSM.reset();
this._mNumOfMBChar = 0;
this._mMBCharLen = 0;
this._mFullLen = 0;
this._mBasicAsciiLen = 0;
};
this.getCharsetName = function() {
return "UTF-8";
};
this.feed = function(aBuf) {
this._mFullLen += aBuf.length;
for (var i = 0, c; i < aBuf.length; i++) {
c = aBuf[i];
var codingState = this._mCodingSM.nextState(c);
if (codingState == constants.error) {
this._mState = constants.notMe;
break;
} else if (codingState == constants.itsMe) {
this._mState = constants.foundIt;
break;
} else if (codingState == constants.start) {
if (this._mCodingSM.getCurrentCharLen() >= 2) {
this._mNumOfMBChar++;
this._mMBCharLen += this._mCodingSM.getCurrentCharLen();
} else if (c.charCodeAt(0) < 128) {
this._mBasicAsciiLen++;
}
}
}
if (this.getState() == constants.detecting) {
if (this.getConfidence() > constants.SHORTCUT_THRESHOLD) {
this._mState = constants.foundIt;
}
}
return this.getState();
};
this.getConfidence = function() {
var unlike = 0.99;
var mbCharRatio = 0;
var nonBasciAsciiLen = this._mFullLen - this._mBasicAsciiLen;
if (nonBasciAsciiLen > 0) {
mbCharRatio = this._mMBCharLen / nonBasciAsciiLen;
}
if (this._mNumOfMBChar < 6 && mbCharRatio <= 0.6) {
unlike *= Math.pow(ONE_CHAR_PROB, this._mNumOfMBChar);
return 1 - unlike;
} else {
return unlike;
}
};
init();
}
UTF8Prober.prototype = new CharSetProber();
module2.exports = UTF8Prober;
}
});
// node_modules/jschardet/src/mbcssm/sjis.js
var require_sjis = __commonJS({
"node_modules/jschardet/src/mbcssm/sjis.js"(exports, module2) {
var consts = require_constants();
var SJIS_cls = [
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
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,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
1,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
4,
4,
4,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
0,
0,
0
];
var SJIS_st = [
consts.error,
consts.start,
consts.start,
3,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.error,
consts.error,
consts.start,
consts.start,
consts.start,
consts.start
];
var SJISCharLenTable = [0, 1, 1, 2, 0, 0];
module2.exports = {
"classTable": SJIS_cls,
"classFactor": 6,
"stateTable": SJIS_st,
"charLenTable": SJISCharLenTable,
"name": "Shift_JIS"
};
}
});
// node_modules/jschardet/src/jpcntx.js
var require_jpcntx = __commonJS({
"node_modules/jschardet/src/jpcntx.js"(exports) {
exports.jp2CharContext = [
[0, 0, 0, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
[2, 4, 0, 4, 0, 3, 0, 4, 0, 3, 4, 4, 4, 2, 4, 3, 3, 4, 3, 2, 3, 3, 4, 2, 3, 3, 3, 2, 4, 1, 4, 3, 3, 1, 5, 4, 3, 4, 3, 4, 3, 5, 3, 0, 3, 5, 4, 2, 0, 3, 1, 0, 3, 3, 0, 3, 3, 0, 1, 1, 0, 4, 3, 0, 3, 3, 0, 4, 0, 2, 0, 3, 5, 5, 5, 5, 4, 0, 4, 1, 0, 3, 4],
[0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2],
[0, 4, 0, 5, 0, 5, 0, 4, 0, 4, 5, 4, 4, 3, 5, 3, 5, 1, 5, 3, 4, 3, 4, 4, 3, 4, 3, 3, 4, 3, 5, 4, 4, 3, 5, 5, 3, 5, 5, 5, 3, 5, 5, 3, 4, 5, 5, 3, 1, 3, 2, 0, 3, 4, 0, 4, 2, 0, 4, 2, 1, 5, 3, 2, 3, 5, 0, 4, 0, 2, 0, 5, 4, 4, 5, 4, 5, 0, 4, 0, 0, 4, 4],
[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, 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, 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, 0, 0, 0, 0, 0],
[0, 3, 0, 4, 0, 3, 0, 3, 0, 4, 5, 4, 3, 3, 3, 3, 4, 3, 5, 4, 4, 3, 5, 4, 4, 3, 4, 3, 4, 4, 4, 4, 5, 3, 4, 4, 3, 4, 5, 5, 4, 5, 5, 1, 4, 5, 4, 3, 0, 3, 3, 1, 3, 3, 0, 4, 4, 0, 3, 3, 1, 5, 3, 3, 3, 5, 0, 4, 0, 3, 0, 4, 4, 3, 4, 3, 3, 0, 4, 1, 1, 3, 4],
[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, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 4, 0, 3, 0, 3, 0, 4, 0, 3, 4, 4, 3, 2, 2, 1, 2, 1, 3, 1, 3, 3, 3, 3, 3, 4, 3, 1, 3, 3, 5, 3, 3, 0, 4, 3, 0, 5, 4, 3, 3, 5, 4, 4, 3, 4, 4, 5, 0, 1, 2, 0, 1, 2, 0, 2, 2, 0, 1, 0, 0, 5, 2, 2, 1, 4, 0, 3, 0, 1, 0, 4, 4, 3, 5, 4, 3, 0, 2, 1, 0, 4, 3],
[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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 3, 0, 5, 0, 4, 0, 2, 1, 4, 4, 2, 4, 1, 4, 2, 4, 2, 4, 3, 3, 3, 4, 3, 3, 3, 3, 1, 4, 2, 3, 3, 3, 1, 4, 4, 1, 1, 1, 4, 3, 3, 2, 0, 2, 4, 3, 2, 0, 3, 3, 0, 3, 1, 1, 0, 0, 0, 3, 3, 0, 4, 2, 2, 3, 4, 0, 4, 0, 3, 0, 4, 4, 5, 3, 4, 4, 0, 3, 0, 0, 1, 4],
[1, 4, 0, 4, 0, 4, 0, 4, 0, 3, 5, 4, 4, 3, 4, 3, 5, 4, 3, 3, 4, 3, 5, 4, 4, 4, 4, 3, 4, 2, 4, 3, 3, 1, 5, 4, 3, 2, 4, 5, 4, 5, 5, 4, 4, 5, 4, 4, 0, 3, 2, 2, 3, 3, 0, 4, 3, 1, 3, 2, 1, 4, 3, 3, 4, 5, 0, 3, 0, 2, 0, 4, 5, 5, 4, 5, 4, 0, 4, 0, 0, 5, 4],
[0, 5, 0, 5, 0, 4, 0, 3, 0, 4, 4, 3, 4, 3, 3, 3, 4, 0, 4, 4, 4, 3, 4, 3, 4, 3, 3, 1, 4, 2, 4, 3, 4, 0, 5, 4, 1, 4, 5, 4, 4, 5, 3, 2, 4, 3, 4, 3, 2, 4, 1, 3, 3, 3, 2, 3, 2, 0, 4, 3, 3, 4, 3, 3, 3, 4, 0, 4, 0, 3, 0, 4, 5, 4, 4, 4, 3, 0, 4, 1, 0, 1, 3],
[0, 3, 1, 4, 0, 3, 0, 2, 0, 3, 4, 4, 3, 1, 4, 2, 3, 3, 4, 3, 4, 3, 4, 3, 4, 4, 3, 2, 3, 1, 5, 4, 4, 1, 4, 4, 3, 5, 4, 4, 3, 5, 5, 4, 3, 4, 4, 3, 1, 2, 3, 1, 2, 2, 0, 3, 2, 0, 3, 1, 0, 5, 3, 3, 3, 4, 3, 3, 3, 3, 4, 4, 4, 4, 5, 4, 2, 0, 3, 3, 2, 4, 3],
[0, 2, 0, 3, 0, 1, 0, 1, 0, 0, 3, 2, 0, 0, 2, 0, 1, 0, 2, 1, 3, 3, 3, 1, 2, 3, 1, 0, 1, 0, 4, 2, 1, 1, 3, 3, 0, 4, 3, 3, 1, 4, 3, 3, 0, 3, 3, 2, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 4, 1, 0, 2, 3, 2, 2, 2, 1, 3, 3, 3, 4, 4, 3, 2, 0, 3, 1, 0, 3, 3],
[0, 4, 0, 4, 0, 3, 0, 3, 0, 4, 4, 4, 3, 3, 3, 3, 3, 3, 4, 3, 4, 2, 4, 3, 4, 3, 3, 2, 4, 3, 4, 5, 4, 1, 4, 5, 3, 5, 4, 5, 3, 5, 4, 0, 3, 5, 5, 3, 1, 3, 3, 2, 2, 3, 0, 3, 4, 1, 3, 3, 2, 4, 3, 3, 3, 4, 0, 4, 0, 3, 0, 4, 5, 4, 4, 5, 3, 0, 4, 1, 0, 3, 4],
[0, 2, 0, 3, 0, 3, 0, 0, 0, 2, 2, 2, 1, 0, 1, 0, 0, 0, 3, 0, 3, 0, 3, 0, 1, 3, 1, 0, 3, 1, 3, 3, 3, 1, 3, 3, 3, 0, 1, 3, 1, 3, 4, 0, 0, 3, 1, 1, 0, 3, 2, 0, 0, 0, 0, 1, 3, 0, 1, 0, 0, 3, 3, 2, 0, 3, 0, 0, 0, 0, 0, 3, 4, 3, 4, 3, 3, 0, 3, 0, 0, 2, 3],
[2, 3, 0, 3, 0, 2, 0, 1, 0, 3, 3, 4, 3, 1, 3, 1, 1, 1, 3, 1, 4, 3, 4, 3, 3, 3, 0, 0, 3, 1, 5, 4, 3, 1, 4, 3, 2, 5, 5, 4, 4, 4, 4, 3, 3, 4, 4, 4, 0, 2, 1, 1, 3, 2, 0, 1, 2, 0, 0, 1, 0, 4, 1, 3, 3, 3, 0, 3, 0, 1, 0, 4, 4, 4, 5, 5, 3, 0, 2, 0, 0, 4, 4],
[0, 2, 0, 1, 0, 3, 1, 3, 0, 2, 3, 3, 3, 0, 3, 1, 0, 0, 3, 0, 3, 2, 3, 1, 3, 2, 1, 1, 0, 0, 4, 2, 1, 0, 2, 3, 1, 4, 3, 2, 0, 4, 4, 3, 1, 3, 1, 3, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 4, 1, 1, 1, 2, 0, 3, 0, 0, 0, 3, 4, 2, 4, 3, 2, 0, 1, 0, 0, 3, 3],
[0, 1, 0, 4, 0, 5, 0, 4, 0, 2, 4, 4, 2, 3, 3, 2, 3, 3, 5, 3, 3, 3, 4, 3, 4, 2, 3, 0, 4, 3, 3, 3, 4, 1, 4, 3, 2, 1, 5, 5, 3, 4, 5, 1, 3, 5, 4, 2, 0, 3, 3, 0, 1, 3, 0, 4, 2, 0, 1, 3, 1, 4, 3, 3, 3, 3, 0, 3, 0, 1, 0, 3, 4, 4, 4, 5, 5, 0, 3, 0, 1, 4, 5],
[0, 2, 0, 3, 0, 3, 0, 0, 0, 2, 3, 1, 3, 0, 4, 0, 1, 1, 3, 0, 3, 4, 3, 2, 3, 1, 0, 3, 3, 2, 3, 1, 3, 0, 2, 3, 0, 2, 1, 4, 1, 2, 2, 0, 0, 3, 3, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 2, 2, 0, 3, 2, 1, 3, 3, 0, 2, 0, 2, 0, 0, 3, 3, 1, 2, 4, 0, 3, 0, 2, 2, 3],
[2, 4, 0, 5, 0, 4, 0, 4, 0, 2, 4, 4, 4, 3, 4, 3, 3, 3, 1, 2, 4, 3, 4, 3, 4, 4, 5, 0, 3, 3, 3, 3, 2, 0, 4, 3, 1, 4, 3, 4, 1, 4, 4, 3, 3, 4, 4, 3, 1, 2, 3, 0, 4, 2, 0, 4, 1, 0, 3, 3, 0, 4, 3, 3, 3, 4, 0, 4, 0, 2, 0, 3, 5, 3, 4, 5, 2, 0, 3, 0, 0, 4, 5],
[0, 3, 0, 4, 0, 1, 0, 1, 0, 1, 3, 2, 2, 1, 3, 0, 3, 0, 2, 0, 2, 0, 3, 0, 2, 0, 0, 0, 1, 0, 1, 1, 0, 0, 3, 1, 0, 0, 0, 4, 0, 3, 1, 0, 2, 1, 3, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 4, 2, 2, 3, 1, 0, 3, 0, 0, 0, 1, 4, 4, 4, 3, 0, 0, 4, 0, 0, 1, 4],
[1, 4, 1, 5, 0, 3, 0, 3, 0, 4, 5, 4, 4, 3, 5, 3, 3, 4, 4, 3, 4, 1, 3, 3, 3, 3, 2, 1, 4, 1, 5, 4, 3, 1, 4, 4, 3, 5, 4, 4, 3, 5, 4, 3, 3, 4, 4, 4, 0, 3, 3, 1, 2, 3, 0, 3, 1, 0, 3, 3, 0, 5, 4, 4, 4, 4, 4, 4, 3, 3, 5, 4, 4, 3, 3, 5, 4, 0, 3, 2, 0, 4, 4],
[0, 2, 0, 3, 0, 1, 0, 0, 0, 1, 3, 3, 3, 2, 4, 1, 3, 0, 3, 1, 3, 0, 2, 2, 1, 1, 0, 0, 2, 0, 4, 3, 1, 0, 4, 3, 0, 4, 4, 4, 1, 4, 3, 1, 1, 3, 3, 1, 0, 2, 0, 0, 1, 3, 0, 0, 0, 0, 2, 0, 0, 4, 3, 2, 4, 3, 5, 4, 3, 3, 3, 4, 3, 3, 4, 3, 3, 0, 2, 1, 0, 3, 3],
[0, 2, 0, 4, 0, 3, 0, 2, 0, 2, 5, 5, 3, 4, 4, 4, 4, 1, 4, 3, 3, 0, 4, 3, 4, 3, 1, 3, 3, 2, 4, 3, 0, 3, 4, 3, 0, 3, 4, 4, 2, 4, 4, 0, 4, 5, 3, 3, 2, 2, 1, 1, 1, 2, 0, 1, 5, 0, 3, 3, 2, 4, 3, 3, 3, 4, 0, 3, 0, 2, 0, 4, 4, 3, 5, 5, 0, 0, 3, 0, 2, 3, 3],
[0, 3, 0, 4, 0, 3, 0, 1, 0, 3, 4, 3, 3, 1, 3, 3, 3, 0, 3, 1, 3, 0, 4, 3, 3, 1, 1, 0, 3, 0, 3, 3, 0, 0, 4, 4, 0, 1, 5, 4, 3, 3, 5, 0, 3, 3, 4, 3, 0, 2, 0, 1, 1, 1, 0, 1, 3, 0, 1, 2, 1, 3, 3, 2, 3, 3, 0, 3, 0, 1, 0, 1, 3, 3, 4, 4, 1, 0, 1, 2, 2, 1, 3],
[0, 1, 0, 4, 0, 4, 0, 3, 0, 1, 3, 3, 3, 2, 3, 1, 1, 0, 3, 0, 3, 3, 4, 3, 2, 4, 2, 0, 1, 0, 4, 3, 2, 0, 4, 3, 0, 5, 3, 3, 2, 4, 4, 4, 3, 3, 3, 4, 0, 1, 3, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 4, 2, 3, 3, 3, 0, 3, 0, 0, 0, 4, 4, 4, 5, 3, 2, 0, 3, 3, 0, 3, 5],
[0, 2, 0, 3, 0, 0, 0, 3, 0, 1, 3, 0, 2, 0, 0, 0, 1, 0, 3, 1, 1, 3, 3, 0, 0, 3, 0, 0, 3, 0, 2, 3, 1, 0, 3, 1, 0, 3, 3, 2, 0, 4, 2, 2, 0, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 2, 0, 1, 0, 1, 0, 0, 0, 1, 3, 1, 2, 0, 0, 0, 1, 0, 0, 1, 4],
[0, 3, 0, 3, 0, 5, 0, 1, 0, 2, 4, 3, 1, 3, 3, 2, 1, 1, 5, 2, 1, 0, 5, 1, 2, 0, 0, 0, 3, 3, 2, 2, 3, 2, 4, 3, 0, 0, 3, 3, 1, 3, 3, 0, 2, 5, 3, 4, 0, 3, 3, 0, 1, 2, 0, 2, 2, 0, 3, 2, 0, 2, 2, 3, 3, 3, 0, 2, 0, 1, 0, 3, 4, 4, 2, 5, 4, 0, 3, 0, 0, 3, 5],
[0, 3, 0, 3, 0, 3, 0, 1, 0, 3, 3, 3, 3, 0, 3, 0, 2, 0, 2, 1, 1, 0, 2, 0, 1, 0, 0, 0, 2, 1, 0, 0, 1, 0, 3, 2, 0, 0, 3, 3, 1, 2, 3, 1, 0, 3, 3, 0, 0, 1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 3, 1, 2, 3, 0, 3, 0, 1, 0, 3, 2, 1, 0, 4, 3, 0, 1, 1, 0, 3, 3],
[0, 4, 0, 5, 0, 3, 0, 3, 0, 4, 5, 5, 4, 3, 5, 3, 4, 3, 5, 3, 3, 2, 5, 3, 4, 4, 4, 3, 4, 3, 4, 5, 5, 3, 4, 4, 3, 4, 4, 5, 4, 4, 4, 3, 4, 5, 5, 4, 2, 3, 4, 2, 3, 4, 0, 3, 3, 1, 4, 3, 2, 4, 3, 3, 5, 5, 0, 3, 0, 3, 0, 5, 5, 5, 5, 4, 4, 0, 4, 0, 1, 4, 4],
[0, 4, 0, 4, 0, 3, 0, 3, 0, 3, 5, 4, 4, 2, 3, 2, 5, 1, 3, 2, 5, 1, 4, 2, 3, 2, 3, 3, 4, 3, 3, 3, 3, 2, 5, 4, 1, 3, 3, 5, 3, 4, 4, 0, 4, 4, 3, 1, 1, 3, 1, 0, 2, 3, 0, 2, 3, 0, 3, 0, 0, 4, 3, 1, 3, 4, 0, 3, 0, 2, 0, 4, 4, 4, 3, 4, 5, 0, 4, 0, 0, 3, 4],
[0, 3, 0, 3, 0, 3, 1, 2, 0, 3, 4, 4, 3, 3, 3, 0, 2, 2, 4, 3, 3, 1, 3, 3, 3, 1, 1, 0, 3, 1, 4, 3, 2, 3, 4, 4, 2, 4, 4, 4, 3, 4, 4, 3, 2, 4, 4, 3, 1, 3, 3, 1, 3, 3, 0, 4, 1, 0, 2, 2, 1, 4, 3, 2, 3, 3, 5, 4, 3, 3, 5, 4, 4, 3, 3, 0, 4, 0, 3, 2, 2, 4, 4],
[0, 2, 0, 1, 0, 0, 0, 0, 0, 1, 2, 1, 3, 0, 0, 0, 0, 0, 2, 0, 1, 2, 1, 0, 0, 1, 0, 0, 0, 0, 3, 0, 0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 0, 3, 4, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1],
[0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 4, 0, 4, 1, 4, 0, 3, 0, 4, 0, 3, 0, 4, 0, 3, 0, 3, 0, 4, 1, 5, 1, 4, 0, 0, 3, 0, 5, 0, 5, 2, 0, 1, 0, 0, 0, 2, 1, 4, 0, 1, 3, 0, 0, 3, 0, 0, 3, 1, 1, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
[1, 4, 0, 5, 0, 3, 0, 2, 0, 3, 5, 4, 4, 3, 4, 3, 5, 3, 4, 3, 3, 0, 4, 3, 3, 3, 3, 3, 3, 2, 4, 4, 3, 1, 3, 4, 4, 5, 4, 4, 3, 4, 4, 1, 3, 5, 4, 3, 3, 3, 1, 2, 2, 3, 3, 1, 3, 1, 3, 3, 3, 5, 3, 3, 4, 5, 0, 3, 0, 3, 0, 3, 4, 3, 4, 4, 3, 0, 3, 0, 2, 4, 3],
[0, 1, 0, 4, 0, 0, 0, 0, 0, 1, 4, 0, 4, 1, 4, 2, 4, 0, 3, 0, 1, 0, 1, 0, 0, 0, 0, 0, 2, 0, 3, 1, 1, 1, 0, 3, 0, 0, 0, 1, 2, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 3, 2, 0, 2, 2, 0, 1, 0, 0, 0, 2, 3, 2, 3, 3, 0, 0, 0, 0, 2, 1, 0],
[0, 5, 1, 5, 0, 3, 0, 3, 0, 5, 4, 4, 5, 1, 5, 3, 3, 0, 4, 3, 4, 3, 5, 3, 4, 3, 3, 2, 4, 3, 4, 3, 3, 0, 3, 3, 1, 4, 4, 3, 4, 4, 4, 3, 4, 5, 5, 3, 2, 3, 1, 1, 3, 3, 1, 3, 1, 1, 3, 3, 2, 4, 5, 3, 3, 5, 0, 4, 0, 3, 0, 4, 4, 3, 5, 3, 3, 0, 3, 4, 0, 4, 3],
[0, 5, 0, 5, 0, 3, 0, 2, 0, 4, 4, 3, 5, 2, 4, 3, 3, 3, 4, 4, 4, 3, 5, 3, 5, 3, 3, 1, 4, 0, 4, 3, 3, 0, 3, 3, 0, 4, 4, 4, 4, 5, 4, 3, 3, 5, 5, 3, 2, 3, 1, 2, 3, 2, 0, 1, 0, 0, 3, 2, 2, 4, 4, 3, 1, 5, 0, 4, 0, 3, 0, 4, 3, 1, 3, 2, 1, 0, 3, 3, 0, 3, 3],
[0, 4, 0, 5, 0, 5, 0, 4, 0, 4, 5, 5, 5, 3, 4, 3, 3, 2, 5, 4, 4, 3, 5, 3, 5, 3, 4, 0, 4, 3, 4, 4, 3, 2, 4, 4, 3, 4, 5, 4, 4, 5, 5, 0, 3, 5, 5, 4, 1, 3, 3, 2, 3, 3, 1, 3, 1, 0, 4, 3, 1, 4, 4, 3, 4, 5, 0, 4, 0, 2, 0, 4, 3, 4, 4, 3, 3, 0, 4, 0, 0, 5, 5],
[0, 4, 0, 4, 0, 5, 0, 1, 1, 3, 3, 4, 4, 3, 4, 1, 3, 0, 5, 1, 3, 0, 3, 1, 3, 1, 1, 0, 3, 0, 3, 3, 4, 0, 4, 3, 0, 4, 4, 4, 3, 4, 4, 0, 3, 5, 4, 1, 0, 3, 0, 0, 2, 3, 0, 3, 1, 0, 3, 1, 0, 3, 2, 1, 3, 5, 0, 3, 0, 1, 0, 3, 2, 3, 3, 4, 4, 0, 2, 2, 0, 4, 4],
[2, 4, 0, 5, 0, 4, 0, 3, 0, 4, 5, 5, 4, 3, 5, 3, 5, 3, 5, 3, 5, 2, 5, 3, 4, 3, 3, 4, 3, 4, 5, 3, 2, 1, 5, 4, 3, 2, 3, 4, 5, 3, 4, 1, 2, 5, 4, 3, 0, 3, 3, 0, 3, 2, 0, 2, 3, 0, 4, 1, 0, 3, 4, 3, 3, 5, 0, 3, 0, 1, 0, 4, 5, 5, 5, 4, 3, 0, 4, 2, 0, 3, 5],
[0, 5, 0, 4, 0, 4, 0, 2, 0, 5, 4, 3, 4, 3, 4, 3, 3, 3, 4, 3, 4, 2, 5, 3, 5, 3, 4, 1, 4, 3, 4, 4, 4, 0, 3, 5, 0, 4, 4, 4, 4, 5, 3, 1, 3, 4, 5, 3, 3, 3, 3, 3, 3, 3, 0, 2, 2, 0, 3, 3, 2, 4, 3, 3, 3, 5, 3, 4, 1, 3, 3, 5, 3, 2, 0, 0, 0, 0, 4, 3, 1, 3, 3],
[0, 1, 0, 3, 0, 3, 0, 1, 0, 1, 3, 3, 3, 2, 3, 3, 3, 0, 3, 0, 0, 0, 3, 1, 3, 0, 0, 0, 2, 2, 2, 3, 0, 0, 3, 2, 0, 1, 2, 4, 1, 3, 3, 0, 0, 3, 3, 3, 0, 1, 0, 0, 2, 1, 0, 0, 3, 0, 3, 1, 0, 3, 0, 0, 1, 3, 0, 2, 0, 1, 0, 3, 3, 1, 3, 3, 0, 0, 1, 1, 0, 3, 3],
[0, 2, 0, 3, 0, 2, 1, 4, 0, 2, 2, 3, 1, 1, 3, 1, 1, 0, 2, 0, 3, 1, 2, 3, 1, 3, 0, 0, 1, 0, 4, 3, 2, 3, 3, 3, 1, 4, 2, 3, 3, 3, 3, 1, 0, 3, 1, 4, 0, 1, 1, 0, 1, 2, 0, 1, 1, 0, 1, 1, 0, 3, 1, 3, 2, 2, 0, 1, 0, 0, 0, 2, 3, 3, 3, 1, 0, 0, 0, 0, 0, 2, 3],
[0, 5, 0, 4, 0, 5, 0, 2, 0, 4, 5, 5, 3, 3, 4, 3, 3, 1, 5, 4, 4, 2, 4, 4, 4, 3, 4, 2, 4, 3, 5, 5, 4, 3, 3, 4, 3, 3, 5, 5, 4, 5, 5, 1, 3, 4, 5, 3, 1, 4, 3, 1, 3, 3, 0, 3, 3, 1, 4, 3, 1, 4, 5, 3, 3, 5, 0, 4, 0, 3, 0, 5, 3, 3, 1, 4, 3, 0, 4, 0, 1, 5, 3],
[0, 5, 0, 5, 0, 4, 0, 2, 0, 4, 4, 3, 4, 3, 3, 3, 3, 3, 5, 4, 4, 4, 4, 4, 4, 5, 3, 3, 5, 2, 4, 4, 4, 3, 4, 4, 3, 3, 4, 4, 5, 5, 3, 3, 4, 3, 4, 3, 3, 4, 3, 3, 3, 3, 1, 2, 2, 1, 4, 3, 3, 5, 4, 4, 3, 4, 0, 4, 0, 3, 0, 4, 4, 4, 4, 4, 1, 0, 4, 2, 0, 2, 4],
[0, 4, 0, 4, 0, 3, 0, 1, 0, 3, 5, 2, 3, 0, 3, 0, 2, 1, 4, 2, 3, 3, 4, 1, 4, 3, 3, 2, 4, 1, 3, 3, 3, 0, 3, 3, 0, 0, 3, 3, 3, 5, 3, 3, 3, 3, 3, 2, 0, 2, 0, 0, 2, 0, 0, 2, 0, 0, 1, 0, 0, 3, 1, 2, 2, 3, 0, 3, 0, 2, 0, 4, 4, 3, 3, 4, 1, 0, 3, 0, 0, 2, 4],
[0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 2, 0, 0, 0, 0, 0, 1, 0, 2, 0, 1, 0, 0, 0, 0, 0, 3, 1, 3, 0, 3, 2, 0, 0, 0, 1, 0, 3, 2, 0, 0, 2, 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, 3, 4, 0, 2, 0, 0, 0, 0, 0, 0, 2],
[0, 2, 1, 3, 0, 2, 0, 2, 0, 3, 3, 3, 3, 1, 3, 1, 3, 3, 3, 3, 3, 3, 4, 2, 2, 1, 2, 1, 4, 0, 4, 3, 1, 3, 3, 3, 2, 4, 3, 5, 4, 3, 3, 3, 3, 3, 3, 3, 0, 1, 3, 0, 2, 0, 0, 1, 0, 0, 1, 0, 0, 4, 2, 0, 2, 3, 0, 3, 3, 0, 3, 3, 4, 2, 3, 1, 4, 0, 1, 2, 0, 2, 3],
[0, 3, 0, 3, 0, 1, 0, 3, 0, 2, 3, 3, 3, 0, 3, 1, 2, 0, 3, 3, 2, 3, 3, 2, 3, 2, 3, 1, 3, 0, 4, 3, 2, 0, 3, 3, 1, 4, 3, 3, 2, 3, 4, 3, 1, 3, 3, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 4, 1, 1, 0, 3, 0, 3, 1, 0, 2, 3, 3, 3, 3, 3, 1, 0, 0, 2, 0, 3, 3],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0, 3, 1, 0, 1, 0, 1, 0, 0, 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, 3, 0, 2, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 3],
[0, 2, 0, 3, 1, 3, 0, 3, 0, 2, 3, 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 1, 3, 0, 2, 3, 1, 1, 4, 3, 3, 2, 3, 3, 1, 2, 2, 4, 1, 3, 3, 0, 1, 4, 2, 3, 0, 1, 3, 0, 3, 0, 0, 1, 3, 0, 2, 0, 0, 3, 3, 2, 1, 3, 0, 3, 0, 2, 0, 3, 4, 4, 4, 3, 1, 0, 3, 0, 0, 3, 3],
[0, 2, 0, 1, 0, 2, 0, 0, 0, 1, 3, 2, 2, 1, 3, 0, 1, 1, 3, 0, 3, 2, 3, 1, 2, 0, 2, 0, 1, 1, 3, 3, 3, 0, 3, 3, 1, 1, 2, 3, 2, 3, 3, 1, 2, 3, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, 0, 2, 1, 2, 1, 3, 0, 3, 0, 0, 0, 3, 4, 4, 4, 3, 2, 0, 2, 0, 0, 2, 4],
[0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 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, 0, 1, 0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 3],
[0, 3, 0, 3, 0, 2, 0, 3, 0, 3, 3, 3, 2, 3, 2, 2, 2, 0, 3, 1, 3, 3, 3, 2, 3, 3, 0, 0, 3, 0, 3, 2, 2, 0, 2, 3, 1, 4, 3, 4, 3, 3, 2, 3, 1, 5, 4, 4, 0, 3, 1, 2, 1, 3, 0, 3, 1, 1, 2, 0, 2, 3, 1, 3, 1, 3, 0, 3, 0, 1, 0, 3, 3, 4, 4, 2, 1, 0, 2, 1, 0, 2, 4],
[0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 4, 2, 5, 1, 4, 0, 2, 0, 2, 1, 3, 1, 4, 0, 2, 1, 0, 0, 2, 1, 4, 1, 1, 0, 3, 3, 0, 5, 1, 3, 2, 3, 3, 1, 0, 3, 2, 3, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 4, 0, 1, 0, 3, 0, 2, 0, 1, 0, 3, 3, 3, 4, 3, 3, 0, 0, 0, 0, 2, 3],
[0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 1, 0, 0, 0, 0, 0, 3],
[0, 1, 0, 3, 0, 4, 0, 3, 0, 2, 4, 3, 1, 0, 3, 2, 2, 1, 3, 1, 2, 2, 3, 1, 1, 1, 2, 1, 3, 0, 1, 2, 0, 1, 3, 2, 1, 3, 0, 5, 5, 1, 0, 0, 1, 3, 2, 1, 0, 3, 0, 0, 1, 0, 0, 0, 0, 0, 3, 4, 0, 1, 1, 1, 3, 2, 0, 2, 0, 1, 0, 2, 3, 3, 1, 2, 3, 0, 1, 0, 1, 0, 4],
[0, 0, 0, 1, 0, 3, 0, 3, 0, 2, 2, 1, 0, 0, 4, 0, 3, 0, 3, 1, 3, 0, 3, 0, 3, 0, 1, 0, 3, 0, 3, 1, 3, 0, 3, 3, 0, 0, 1, 2, 1, 1, 1, 0, 1, 2, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 1, 2, 0, 0, 2, 0, 0, 0, 0, 2, 3, 3, 3, 3, 0, 0, 0, 0, 1, 4],
[0, 0, 0, 3, 0, 3, 0, 0, 0, 0, 3, 1, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 2, 0, 2, 3, 0, 0, 2, 2, 3, 1, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 2, 0, 0, 0, 0, 2, 3],
[2, 4, 0, 5, 0, 5, 0, 4, 0, 3, 4, 3, 3, 3, 4, 3, 3, 3, 4, 3, 4, 4, 5, 4, 5, 5, 5, 2, 3, 0, 5, 5, 4, 1, 5, 4, 3, 1, 5, 4, 3, 4, 4, 3, 3, 4, 3, 3, 0, 3, 2, 0, 2, 3, 0, 3, 0, 0, 3, 3, 0, 5, 3, 2, 3, 3, 0, 3, 0, 3, 0, 3, 4, 5, 4, 5, 3, 0, 4, 3, 0, 3, 4],
[0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 3, 4, 3, 2, 3, 2, 3, 0, 4, 3, 3, 3, 3, 3, 3, 3, 3, 0, 3, 2, 4, 3, 3, 1, 3, 4, 3, 4, 4, 4, 3, 4, 4, 3, 2, 4, 4, 1, 0, 2, 0, 0, 1, 1, 0, 2, 0, 0, 3, 1, 0, 5, 3, 2, 1, 3, 0, 3, 0, 1, 2, 4, 3, 2, 4, 3, 3, 0, 3, 2, 0, 4, 4],
[0, 3, 0, 3, 0, 1, 0, 0, 0, 1, 4, 3, 3, 2, 3, 1, 3, 1, 4, 2, 3, 2, 4, 2, 3, 4, 3, 0, 2, 2, 3, 3, 3, 0, 3, 3, 3, 0, 3, 4, 1, 3, 3, 0, 3, 4, 3, 3, 0, 1, 1, 0, 1, 0, 0, 0, 4, 0, 3, 0, 0, 3, 1, 2, 1, 3, 0, 4, 0, 1, 0, 4, 3, 3, 4, 3, 3, 0, 2, 0, 0, 3, 3],
[0, 3, 0, 4, 0, 1, 0, 3, 0, 3, 4, 3, 3, 0, 3, 3, 3, 1, 3, 1, 3, 3, 4, 3, 3, 3, 0, 0, 3, 1, 5, 3, 3, 1, 3, 3, 2, 5, 4, 3, 3, 4, 5, 3, 2, 5, 3, 4, 0, 1, 0, 0, 0, 0, 0, 2, 0, 0, 1, 1, 0, 4, 2, 2, 1, 3, 0, 3, 0, 2, 0, 4, 4, 3, 5, 3, 2, 0, 1, 1, 0, 3, 4],
[0, 5, 0, 4, 0, 5, 0, 2, 0, 4, 4, 3, 3, 2, 3, 3, 3, 1, 4, 3, 4, 1, 5, 3, 4, 3, 4, 0, 4, 2, 4, 3, 4, 1, 5, 4, 0, 4, 4, 4, 4, 5, 4, 1, 3, 5, 4, 2, 1, 4, 1, 1, 3, 2, 0, 3, 1, 0, 3, 2, 1, 4, 3, 3, 3, 4, 0, 4, 0, 3, 0, 4, 4, 4, 3, 3, 3, 0, 4, 2, 0, 3, 4],
[1, 4, 0, 4, 0, 3, 0, 1, 0, 3, 3, 3, 1, 1, 3, 3, 2, 2, 3, 3, 1, 0, 3, 2, 2, 1, 2, 0, 3, 1, 2, 1, 2, 0, 3, 2, 0, 2, 2, 3, 3, 4, 3, 0, 3, 3, 1, 2, 0, 1, 1, 3, 1, 2, 0, 0, 3, 0, 1, 1, 0, 3, 2, 2, 3, 3, 0, 3, 0, 0, 0, 2, 3, 3, 4, 3, 3, 0, 1, 0, 0, 1, 4],
[0, 4, 0, 4, 0, 4, 0, 0, 0, 3, 4, 4, 3, 1, 4, 2, 3, 2, 3, 3, 3, 1, 4, 3, 4, 0, 3, 0, 4, 2, 3, 3, 2, 2, 5, 4, 2, 1, 3, 4, 3, 4, 3, 1, 3, 3, 4, 2, 0, 2, 1, 0, 3, 3, 0, 0, 2, 0, 3, 1, 0, 4, 4, 3, 4, 3, 0, 4, 0, 1, 0, 2, 4, 4, 4, 4, 4, 0, 3, 2, 0, 3, 3],
[0, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 2, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 2],
[0, 2, 0, 3, 0, 4, 0, 4, 0, 1, 3, 3, 3, 0, 4, 0, 2, 1, 2, 1, 1, 1, 2, 0, 3, 1, 1, 0, 1, 0, 3, 1, 0, 0, 3, 3, 2, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 2, 2, 0, 3, 1, 0, 0, 1, 0, 1, 1, 0, 1, 2, 0, 3, 0, 0, 0, 0, 1, 0, 0, 3, 3, 4, 3, 1, 0, 1, 0, 3, 0, 2],
[0, 0, 0, 3, 0, 5, 0, 0, 0, 0, 1, 0, 2, 0, 3, 1, 0, 1, 3, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 4, 0, 0, 0, 2, 3, 0, 1, 4, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3],
[0, 2, 0, 5, 0, 5, 0, 1, 0, 2, 4, 3, 3, 2, 5, 1, 3, 2, 3, 3, 3, 0, 4, 1, 2, 0, 3, 0, 4, 0, 2, 2, 1, 1, 5, 3, 0, 0, 1, 4, 2, 3, 2, 0, 3, 3, 3, 2, 0, 2, 4, 1, 1, 2, 0, 1, 1, 0, 3, 1, 0, 1, 3, 1, 2, 3, 0, 2, 0, 0, 0, 1, 3, 5, 4, 4, 4, 0, 3, 0, 0, 1, 3],
[0, 4, 0, 5, 0, 4, 0, 4, 0, 4, 5, 4, 3, 3, 4, 3, 3, 3, 4, 3, 4, 4, 5, 3, 4, 5, 4, 2, 4, 2, 3, 4, 3, 1, 4, 4, 1, 3, 5, 4, 4, 5, 5, 4, 4, 5, 5, 5, 2, 3, 3, 1, 4, 3, 1, 3, 3, 0, 3, 3, 1, 4, 3, 4, 4, 4, 0, 3, 0, 4, 0, 3, 3, 4, 4, 5, 0, 0, 4, 3, 0, 4, 5],
[0, 4, 0, 4, 0, 3, 0, 3, 0, 3, 4, 4, 4, 3, 3, 2, 4, 3, 4, 3, 4, 3, 5, 3, 4, 3, 2, 1, 4, 2, 4, 4, 3, 1, 3, 4, 2, 4, 5, 5, 3, 4, 5, 4, 1, 5, 4, 3, 0, 3, 2, 2, 3, 2, 1, 3, 1, 0, 3, 3, 3, 5, 3, 3, 3, 5, 4, 4, 2, 3, 3, 4, 3, 3, 3, 2, 1, 0, 3, 2, 1, 4, 3],
[0, 4, 0, 5, 0, 4, 0, 3, 0, 3, 5, 5, 3, 2, 4, 3, 4, 0, 5, 4, 4, 1, 4, 4, 4, 3, 3, 3, 4, 3, 5, 5, 2, 3, 3, 4, 1, 2, 5, 5, 3, 5, 5, 2, 3, 5, 5, 4, 0, 3, 2, 0, 3, 3, 1, 1, 5, 1, 4, 1, 0, 4, 3, 2, 3, 5, 0, 4, 0, 3, 0, 5, 4, 3, 4, 3, 0, 0, 4, 1, 0, 4, 4],
[1, 3, 0, 4, 0, 2, 0, 2, 0, 2, 5, 5, 3, 3, 3, 3, 3, 0, 4, 2, 3, 4, 4, 4, 3, 4, 0, 0, 3, 4, 5, 4, 3, 3, 3, 3, 2, 5, 5, 4, 5, 5, 5, 4, 3, 5, 5, 5, 1, 3, 1, 0, 1, 0, 0, 3, 2, 0, 4, 2, 0, 5, 2, 3, 2, 4, 1, 3, 0, 3, 0, 4, 5, 4, 5, 4, 3, 0, 4, 2, 0, 5, 4],
[0, 3, 0, 4, 0, 5, 0, 3, 0, 3, 4, 4, 3, 2, 3, 2, 3, 3, 3, 3, 3, 2, 4, 3, 3, 2, 2, 0, 3, 3, 3, 3, 3, 1, 3, 3, 3, 0, 4, 4, 3, 4, 4, 1, 1, 4, 4, 2, 0, 3, 1, 0, 1, 1, 0, 4, 1, 0, 2, 3, 1, 3, 3, 1, 3, 4, 0, 3, 0, 1, 0, 3, 1, 3, 0, 0, 1, 0, 2, 0, 0, 4, 4],
[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, 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, 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, 0, 0, 0, 0, 0],
[0, 3, 0, 3, 0, 2, 0, 3, 0, 1, 5, 4, 3, 3, 3, 1, 4, 2, 1, 2, 3, 4, 4, 2, 4, 4, 5, 0, 3, 1, 4, 3, 4, 0, 4, 3, 3, 3, 2, 3, 2, 5, 3, 4, 3, 2, 2, 3, 0, 0, 3, 0, 2, 1, 0, 1, 2, 0, 0, 0, 0, 2, 1, 1, 3, 1, 0, 2, 0, 4, 0, 3, 4, 4, 4, 5, 2, 0, 2, 0, 0, 1, 3],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 4, 2, 1, 1, 0, 1, 0, 3, 2, 0, 0, 3, 1, 1, 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 4, 0, 4, 2, 1, 0, 0, 0, 0, 0, 1],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 2, 0, 2, 1, 0, 0, 1, 2, 1, 0, 1, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2],
[0, 4, 0, 4, 0, 4, 0, 3, 0, 4, 4, 3, 4, 2, 4, 3, 2, 0, 4, 4, 4, 3, 5, 3, 5, 3, 3, 2, 4, 2, 4, 3, 4, 3, 1, 4, 0, 2, 3, 4, 4, 4, 3, 3, 3, 4, 4, 4, 3, 4, 1, 3, 4, 3, 2, 1, 2, 1, 3, 3, 3, 4, 4, 3, 3, 5, 0, 4, 0, 3, 0, 4, 3, 3, 3, 2, 1, 0, 3, 0, 0, 3, 3],
[0, 4, 0, 3, 0, 3, 0, 3, 0, 3, 5, 5, 3, 3, 3, 3, 4, 3, 4, 3, 3, 3, 4, 4, 4, 3, 3, 3, 3, 4, 3, 5, 3, 3, 1, 3, 2, 4, 5, 5, 5, 5, 4, 3, 4, 5, 5, 3, 2, 2, 3, 3, 3, 3, 2, 3, 3, 1, 2, 3, 2, 4, 3, 3, 3, 4, 0, 4, 0, 2, 0, 4, 3, 2, 2, 1, 2, 0, 3, 0, 0, 4, 1]
];
function JapaneseContextAnalysis() {
var NUM_OF_CATEGORY = 6;
var DONT_KNOW = -1;
var ENOUGH_REL_THRESHOLD = 100;
var MAX_REL_THRESHOLD = 1e3;
var MINIMUM_DATA_THRESHOLD = 4;
var self = this;
function init() {
self.reset();
}
this.reset = function() {
this._mTotalRel = 0;
this._mRelSample = [];
for (var i = 0; i < NUM_OF_CATEGORY; this._mRelSample[i++] = 0)
;
this._mNeedToSkipCharNum = 0;
this._mLastCharOrder = -1;
this._mDone = false;
};
this.feed = function(aBuf, aLen) {
if (this._mDone)
return;
var i = this._mNeedToSkipCharNum;
while (i < aLen) {
var rets = this.getOrder(aBuf.slice(i, i + 2));
var order = rets[0];
var charLen = rets[1];
i += charLen;
if (i > aLen) {
this._mNeedToSkipCharNum = i - aLen;
this._mLastCharOrder = -1;
} else {
if (order != -1 && this._mLastCharOrder != -1) {
this._mTotalRel += 1;
if (this._mTotalRel > MAX_REL_THRESHOLD) {
this._mDone = true;
break;
}
this._mRelSample[exports.jp2CharContext[this._mLastCharOrder][order]] += 1;
}
this._mLastCharOrder = order;
}
}
};
this.gotEnoughData = function() {
return this._mTotalRel > ENOUGH_REL_THRESHOLD;
};
this.getConfidence = function() {
if (this._mTotalRel > MINIMUM_DATA_THRESHOLD) {
return (this._mTotalRel - this._mRelSample[0]) / this._mTotalRel;
} else {
return DONT_KNOW;
}
};
this.getOrder = function(aStr) {
return [-1, 1];
};
init();
}
function SJISContextAnalysis() {
this.getOrder = function(aStr) {
if (!aStr)
return [-1, 1];
if (aStr.charCodeAt(0) >= 129 && aStr.charCodeAt(0) <= 159 || aStr.charCodeAt(0) >= 224 && aStr.charCodeAt(0) <= 252) {
var charLen = 2;
} else {
charLen = 1;
}
if (aStr.length > 1) {
if (aStr.charCodeAt(0) == 130 && aStr.charCodeAt(1) >= 159 && aStr.charCodeAt(0) <= 241) {
return [aStr.charCodeAt(1) - 159, charLen];
}
}
return [-1, charLen];
};
}
SJISContextAnalysis.prototype = new JapaneseContextAnalysis();
exports.SJISContextAnalysis = SJISContextAnalysis;
function EUCJPContextAnalysis() {
this.getOrder = function(aStr) {
if (!aStr)
return [-1, 1];
if (aStr.charCodeAt(0) >= 142 || aStr.charCodeAt(0) >= 161 && aStr.charCodeAt(0) <= 254) {
var charLen = 2;
} else if (aStr.charCodeAt(0) == 143) {
charLen = 3;
} else {
charLen = 1;
}
if (aStr.length > 1) {
if (aStr.charCodeAt(0) == 164 && aStr.charCodeAt(1) >= 161 && aStr.charCodeAt(1) <= 243) {
return [aStr.charCodeAt(1) - 161, charLen];
}
}
return [-1, charLen];
};
}
EUCJPContextAnalysis.prototype = new JapaneseContextAnalysis();
exports.EUCJPContextAnalysis = EUCJPContextAnalysis;
}
});
// node_modules/jschardet/src/sjisprober.js
var require_sjisprober = __commonJS({
"node_modules/jschardet/src/sjisprober.js"(exports, module2) {
var CodingStateMachine = require_codingstatemachine();
var MultiByteCharSetProber = require_mbcharsetprober();
var SJISSMModel = require_sjis();
var SJISDistributionAnalysis = require_chardistribution().SJISDistributionAnalysis;
var SJISContextAnalysis = require_jpcntx().SJISContextAnalysis;
var constants = require_constants();
var logger = require_logger();
function SJISProber() {
MultiByteCharSetProber.apply(this);
var self = this;
function init() {
self._mCodingSM = new CodingStateMachine(SJISSMModel);
self._mDistributionAnalyzer = new SJISDistributionAnalysis();
self._mContextAnalyzer = new SJISContextAnalysis();
self.reset();
}
this.reset = function() {
SJISProber.prototype.reset.apply(this);
this._mContextAnalyzer.reset();
};
this.getCharsetName = function() {
return "SHIFT_JIS";
};
this.feed = function(aBuf) {
var aLen = aBuf.length;
for (var i = 0; i < aLen; i++) {
var codingState = this._mCodingSM.nextState(aBuf[i]);
if (codingState == constants.error) {
logger.log(this.getCharsetName() + " prober hit error at byte " + i + "\n");
this._mState = constants.notMe;
break;
} else if (codingState == constants.itsMe) {
this._mState = constants.foundIt;
break;
} else if (codingState == constants.start) {
var charLen = this._mCodingSM.getCurrentCharLen();
if (i == 0) {
this._mLastChar[1] = aBuf[0];
this._mContextAnalyzer.feed(this._mLastChar.slice(2 - charLen), charLen);
this._mDistributionAnalyzer.feed(this._mLastChar, charLen);
} else {
this._mContextAnalyzer.feed(aBuf.slice(i + 1 - charLen, i + 3 - charLen), charLen);
this._mDistributionAnalyzer.feed(aBuf.slice(i - 1, i + 1), charLen);
}
}
}
this._mLastChar[0] = aBuf[aLen - 1];
if (this.getState() == constants.detecting) {
if (this._mContextAnalyzer.gotEnoughData() && this.getConfidence() > constants.SHORTCUT_THRESHOLD) {
this._mState = constants.foundIt;
}
}
return this.getState();
};
this.getConfidence = function() {
var contxtCf = this._mContextAnalyzer.getConfidence();
var distribCf = this._mDistributionAnalyzer.getConfidence();
return Math.max(contxtCf, distribCf);
};
init();
}
SJISProber.prototype = new MultiByteCharSetProber();
module2.exports = SJISProber;
}
});
// node_modules/jschardet/src/mbcssm/eucjp.js
var require_eucjp = __commonJS({
"node_modules/jschardet/src/mbcssm/eucjp.js"(exports, module2) {
var consts = require_constants();
var EUCJP_cls = [
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
5,
5,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
5,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
1,
3,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
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,
0,
0,
0,
0,
0,
5
];
var EUCJP_st = [
3,
4,
3,
5,
consts.start,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.start,
consts.error,
consts.start,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.start,
consts.error,
consts.error,
consts.error,
3,
consts.error,
3,
consts.error,
consts.error,
consts.error,
consts.start,
consts.start,
consts.start,
consts.start
];
var EUCJPCharLenTable = [2, 2, 2, 3, 1, 0];
module2.exports = {
"classTable": EUCJP_cls,
"classFactor": 6,
"stateTable": EUCJP_st,
"charLenTable": EUCJPCharLenTable,
"name": "EUC-JP"
};
}
});
// node_modules/jschardet/src/eucjpprober.js
var require_eucjpprober = __commonJS({
"node_modules/jschardet/src/eucjpprober.js"(exports, module2) {
var CodingStateMachine = require_codingstatemachine();
var MultiByteCharSetProber = require_mbcharsetprober();
var EUCJPDistributionAnalysis = require_chardistribution().EUCJPDistributionAnalysis;
var EUCJPContextAnalysis = require_jpcntx().EUCJPContextAnalysis;
var EUCJPSMModel = require_eucjp();
var constants = require_constants();
var logger = require_logger();
function EUCJPProber() {
MultiByteCharSetProber.apply(this);
var self = this;
function init() {
self._mCodingSM = new CodingStateMachine(EUCJPSMModel);
self._mDistributionAnalyzer = new EUCJPDistributionAnalysis();
self._mContextAnalyzer = new EUCJPContextAnalysis();
self.reset();
}
this.reset = function() {
EUCJPProber.prototype.reset.apply(this);
this._mContextAnalyzer.reset();
};
this.getCharsetName = function() {
return "EUC-JP";
};
this.feed = function(aBuf) {
var aLen = aBuf.length;
for (var i = 0; i < aLen; i++) {
var codingState = this._mCodingSM.nextState(aBuf[i]);
if (codingState == constants.error) {
logger.log(this.getCharsetName() + " prober hit error at byte " + i + "\n");
this._mState = constants.notMe;
break;
} else if (codingState == constants.itsMe) {
this._mState = constants.foundIt;
break;
} else if (codingState == constants.start) {
var charLen = this._mCodingSM.getCurrentCharLen();
if (i == 0) {
this._mLastChar[1] = aBuf[0];
this._mContextAnalyzer.feed(this._mLastChar, charLen);
this._mDistributionAnalyzer.feed(this._mLastChar, charLen);
} else {
this._mContextAnalyzer.feed(aBuf.slice(i - 1, i + 1), charLen);
this._mDistributionAnalyzer.feed(aBuf.slice(i - 1, i + 1), charLen);
}
}
}
this._mLastChar[0] = aBuf[aLen - 1];
if (this.getState() == constants.detecting) {
if (this._mContextAnalyzer.gotEnoughData() && this.getConfidence() > constants.SHORTCUT_THRESHOLD) {
this._mState = constants.foundIt;
}
}
return this.getState();
};
this.getConfidence = function() {
var contxtCf = this._mContextAnalyzer.getConfidence();
var distribCf = this._mDistributionAnalyzer.getConfidence();
return Math.max(contxtCf, distribCf);
};
init();
}
EUCJPProber.prototype = new MultiByteCharSetProber();
module2.exports = EUCJPProber;
}
});
// node_modules/jschardet/src/mbcssm/gb2312.js
var require_gb2312 = __commonJS({
"node_modules/jschardet/src/mbcssm/gb2312.js"(exports, module2) {
var consts = require_constants();
var GB2312_cls = [
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
1,
1,
1,
1,
1,
1,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
4,
5,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
0
];
var GB2312_st = [
consts.error,
consts.start,
consts.start,
consts.start,
consts.start,
consts.start,
3,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.error,
consts.error,
consts.start,
4,
consts.error,
consts.start,
consts.start,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
5,
consts.error,
consts.error,
consts.error,
consts.itsMe,
consts.error,
consts.error,
consts.error,
consts.start,
consts.start,
consts.start,
consts.start,
consts.start,
consts.start
];
var GB2312CharLenTable = [0, 1, 1, 1, 1, 1, 2];
module2.exports = {
"classTable": GB2312_cls,
"classFactor": 7,
"stateTable": GB2312_st,
"charLenTable": GB2312CharLenTable,
"name": "GB2312"
};
}
});
// node_modules/jschardet/src/gb2312prober.js
var require_gb2312prober = __commonJS({
"node_modules/jschardet/src/gb2312prober.js"(exports, module2) {
var MultiByteCharSetProber = require_mbcharsetprober();
var CodingStateMachine = require_codingstatemachine();
var GB2312SMModel = require_gb2312();
var GB2312DistributionAnalysis = require_chardistribution().GB2312DistributionAnalysis;
function GB2312Prober() {
MultiByteCharSetProber.apply(this);
var self = this;
function init() {
self._mCodingSM = new CodingStateMachine(GB2312SMModel);
self._mDistributionAnalyzer = new GB2312DistributionAnalysis();
self.reset();
}
this.getCharsetName = function() {
return "GB2312";
};
init();
}
GB2312Prober.prototype = new MultiByteCharSetProber();
module2.exports = GB2312Prober;
}
});
// node_modules/jschardet/src/mbcssm/euckr.js
var require_euckr = __commonJS({
"node_modules/jschardet/src/mbcssm/euckr.js"(exports, module2) {
var consts = require_constants();
var EUCKR_cls = [
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
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,
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,
0,
0,
0,
0,
0,
0,
0,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
3,
3,
3,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
3,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
0
];
var EUCKR_st = [
consts.error,
consts.start,
3,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.error,
consts.error,
consts.start,
consts.start
];
var EUCKRCharLenTable = [0, 1, 2, 0];
module2.exports = {
"classTable": EUCKR_cls,
"classFactor": 4,
"stateTable": EUCKR_st,
"charLenTable": EUCKRCharLenTable,
"name": "EUC-KR"
};
}
});
// node_modules/jschardet/src/euckrprober.js
var require_euckrprober = __commonJS({
"node_modules/jschardet/src/euckrprober.js"(exports, module2) {
var CodingStateMachine = require_codingstatemachine();
var MultiByteCharSetProber = require_mbcharsetprober();
var EUCKRDistributionAnalysis = require_chardistribution().EUCKRDistributionAnalysis;
var EUCKRSMModel = require_euckr();
function EUCKRProber() {
MultiByteCharSetProber.apply(this);
var self = this;
function init() {
self._mCodingSM = new CodingStateMachine(EUCKRSMModel);
self._mDistributionAnalyzer = new EUCKRDistributionAnalysis();
self.reset();
}
this.getCharsetName = function() {
return "EUC-KR";
};
init();
}
EUCKRProber.prototype = new MultiByteCharSetProber();
module2.exports = EUCKRProber;
}
});
// node_modules/jschardet/src/mbcssm/euctw.js
var require_euctw = __commonJS({
"node_modules/jschardet/src/mbcssm/euctw.js"(exports, module2) {
var consts = require_constants();
var EUCTW_cls = [
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
0,
0,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
0,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
6,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
4,
4,
4,
4,
4,
4,
5,
5,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
3,
1,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
0
];
var EUCTW_st = [
consts.error,
consts.error,
consts.start,
3,
3,
3,
4,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.error,
consts.start,
consts.error,
consts.start,
consts.start,
consts.start,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
5,
consts.error,
consts.error,
consts.error,
consts.start,
consts.error,
consts.start,
consts.start,
consts.start,
consts.error,
consts.start,
consts.start,
consts.start,
consts.start,
consts.start,
consts.start
];
var EUCTWCharLenTable = [0, 0, 1, 2, 2, 2, 3];
module2.exports = {
"classTable": EUCTW_cls,
"classFactor": 7,
"stateTable": EUCTW_st,
"charLenTable": EUCTWCharLenTable,
"name": "x-euc-tw"
};
}
});
// node_modules/jschardet/src/euctwprober.js
var require_euctwprober = __commonJS({
"node_modules/jschardet/src/euctwprober.js"(exports, module2) {
var CodingStateMachine = require_codingstatemachine();
var MultiByteCharSetProber = require_mbcharsetprober();
var EUCTWDistributionAnalysis = require_chardistribution().EUCTWDistributionAnalysis;
var EUCTWSMModel = require_euctw();
function EUCTWProber() {
MultiByteCharSetProber.apply(this);
var self = this;
function init() {
self._mCodingSM = new CodingStateMachine(EUCTWSMModel);
self._mDistributionAnalyzer = new EUCTWDistributionAnalysis();
self.reset();
}
this.getCharsetName = function() {
return "EUC-TW";
};
init();
}
EUCTWProber.prototype = new MultiByteCharSetProber();
module2.exports = EUCTWProber;
}
});
// node_modules/jschardet/src/mbcsgroupprober.js
var require_mbcsgroupprober = __commonJS({
"node_modules/jschardet/src/mbcsgroupprober.js"(exports, module2) {
var CharSetGroupProber = require_charsetgroupprober();
var Big5Prober = require_big5prober();
var UTF8Prober = require_utf8prober();
var SJISProber = require_sjisprober();
var EUCJPProber = require_eucjpprober();
var GB2312Prober = require_gb2312prober();
var EUCKRProber = require_euckrprober();
var EUCTWProber = require_euctwprober();
function MBCSGroupProber() {
CharSetGroupProber.apply(this);
this._mProbers = [
new UTF8Prober(),
new SJISProber(),
new EUCJPProber(),
new GB2312Prober(),
new EUCKRProber(),
new Big5Prober(),
new EUCTWProber()
];
this.reset();
}
MBCSGroupProber.prototype = new CharSetGroupProber();
module2.exports = MBCSGroupProber;
}
});
// node_modules/jschardet/src/sbcharsetprober.js
var require_sbcharsetprober = __commonJS({
"node_modules/jschardet/src/sbcharsetprober.js"(exports, module2) {
var CharSetProber = require_charsetprober();
var constants = require_constants();
var logger = require_logger();
function SingleByteCharSetProber(model, reversed, nameProber) {
CharSetProber.apply(this);
var SAMPLE_SIZE = 64;
var SB_ENOUGH_REL_THRESHOLD = 1024;
var POSITIVE_SHORTCUT_THRESHOLD = 0.95;
var NEGATIVE_SHORTCUT_THRESHOLD = 0.05;
var SYMBOL_CAT_ORDER = 250;
var NUMBER_OF_SEQ_CAT = 4;
var POSITIVE_CAT = NUMBER_OF_SEQ_CAT - 1;
var self = this;
function init(model2, reversed2, nameProber2) {
self._mModel = model2;
self._mReversed = reversed2;
self._mNameProber = nameProber2;
self.reset();
}
this.reset = function() {
SingleByteCharSetProber.prototype.reset.apply(this);
this._mLastOrder = 255;
this._mSeqCounters = [];
for (var i = 0; i < NUMBER_OF_SEQ_CAT; this._mSeqCounters[i++] = 0)
;
this._mTotalSeqs = 0;
this._mTotalChar = 0;
this._mFreqChar = 0;
};
this.getCharsetName = function() {
if (this._mNameProber) {
return this._mNameProber.getCharsetName();
} else {
return this._mModel.charsetName;
}
};
this.feed = function(aBuf) {
if (!this._mModel.keepEnglishLetter) {
aBuf = this.filterWithoutEnglishLetters(aBuf);
}
var aLen = aBuf.length;
if (!aLen) {
return this.getState();
}
for (var i = 0, c; i < aLen; i++) {
c = aBuf.charCodeAt(i);
var order = this._mModel.charToOrderMap[c];
if (order < SYMBOL_CAT_ORDER) {
this._mTotalChar++;
}
if (order < SAMPLE_SIZE) {
this._mFreqChar++;
if (this._mLastOrder < SAMPLE_SIZE) {
this._mTotalSeqs++;
if (!this._mReversed) {
this._mSeqCounters[this._mModel.precedenceMatrix[this._mLastOrder * SAMPLE_SIZE + order]]++;
} else {
this._mSeqCounters[this._mModel.precedenceMatrix[order * SAMPLE_SIZE + this._mLastOrder]]++;
}
}
}
this._mLastOrder = order;
}
if (this.getState() == constants.detecting) {
if (self._mTotalSeqs > SB_ENOUGH_REL_THRESHOLD) {
var cf = this.getConfidence();
if (cf > POSITIVE_SHORTCUT_THRESHOLD) {
logger.log(this._mModel.charsetName + " confidence = " + cf + ", we have a winner\n");
} else if (cf < NEGATIVE_SHORTCUT_THRESHOLD) {
logger.log(this._mModel.charsetName + " confidence = " + cf + ", below negative shortcut threshhold " + NEGATIVE_SHORTCUT_THRESHOLD + "\n");
this._mState = constants.notMe;
}
}
}
return this.getState();
};
this.getConfidence = function() {
var r = 0.01;
if (this._mTotalSeqs > 0) {
r = 1 * this._mSeqCounters[POSITIVE_CAT] / this._mTotalSeqs / this._mModel.mTypicalPositiveRatio;
r *= this._mFreqChar / this._mTotalChar;
if (r >= 1) {
r = 0.99;
}
}
return r;
};
reversed = reversed !== void 0 ? reversed : false;
nameProber = nameProber !== void 0 ? nameProber : null;
init(model, reversed, nameProber);
}
SingleByteCharSetProber.prototype = new CharSetProber();
module2.exports = SingleByteCharSetProber;
}
});
// node_modules/jschardet/src/langhebrewmodel.js
var require_langhebrewmodel = __commonJS({
"node_modules/jschardet/src/langhebrewmodel.js"(exports) {
exports.win1255_CharToOrderMap = [
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
254,
255,
255,
254,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
252,
252,
252,
252,
252,
252,
252,
252,
252,
252,
253,
253,
253,
253,
253,
253,
253,
69,
91,
79,
80,
92,
89,
97,
90,
68,
111,
112,
82,
73,
95,
85,
78,
121,
86,
71,
67,
102,
107,
84,
114,
103,
115,
253,
253,
253,
253,
253,
253,
50,
74,
60,
61,
42,
76,
70,
64,
53,
105,
93,
56,
65,
54,
49,
66,
110,
51,
43,
44,
63,
81,
77,
98,
75,
108,
253,
253,
253,
253,
253,
124,
202,
203,
204,
205,
40,
58,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
83,
52,
47,
46,
72,
32,
94,
216,
113,
217,
109,
218,
219,
220,
221,
34,
116,
222,
118,
100,
223,
224,
117,
119,
104,
125,
225,
226,
87,
99,
227,
106,
122,
123,
228,
55,
229,
230,
101,
231,
232,
120,
233,
48,
39,
57,
234,
30,
59,
41,
88,
33,
37,
36,
31,
29,
35,
235,
62,
28,
236,
126,
237,
238,
38,
45,
239,
240,
241,
242,
243,
127,
244,
245,
246,
247,
248,
249,
250,
9,
8,
20,
16,
3,
2,
24,
14,
22,
1,
25,
15,
4,
11,
6,
23,
12,
19,
13,
26,
18,
27,
21,
17,
7,
10,
5,
251,
252,
128,
96,
253
];
exports.HebrewLangModel = [
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
3,
2,
1,
2,
0,
1,
0,
0,
3,
0,
3,
1,
0,
0,
1,
3,
2,
0,
1,
1,
2,
0,
2,
2,
2,
1,
1,
1,
1,
2,
1,
1,
1,
2,
0,
0,
2,
2,
0,
1,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
2,
2,
2,
1,
2,
1,
2,
1,
2,
0,
0,
2,
0,
0,
0,
0,
0,
1,
0,
1,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
1,
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
2,
2,
1,
2,
1,
3,
1,
1,
0,
0,
2,
0,
0,
0,
1,
0,
1,
0,
1,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
1,
0,
1,
2,
2,
1,
3,
1,
2,
1,
1,
2,
2,
0,
0,
2,
2,
0,
0,
0,
0,
1,
0,
1,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
1,
0,
1,
1,
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
3,
3,
2,
2,
2,
2,
3,
2,
1,
2,
1,
2,
2,
2,
0,
0,
1,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
1,
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
3,
3,
2,
3,
2,
2,
3,
2,
2,
2,
1,
2,
2,
2,
2,
1,
2,
1,
1,
2,
2,
0,
1,
2,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
0,
2,
2,
2,
2,
2,
0,
2,
0,
2,
2,
2,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
1,
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
3,
0,
2,
2,
2,
0,
2,
1,
2,
2,
2,
0,
0,
2,
1,
0,
0,
0,
0,
1,
0,
1,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
1,
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
1,
2,
3,
2,
2,
2,
1,
2,
1,
2,
2,
2,
0,
0,
1,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
1,
1,
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
3,
3,
3,
2,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
1,
0,
2,
0,
2,
0,
2,
1,
2,
2,
2,
0,
0,
1,
2,
0,
0,
0,
0,
1,
0,
1,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
2,
0,
0,
1,
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
3,
2,
3,
2,
2,
3,
2,
1,
2,
1,
1,
1,
0,
1,
1,
1,
1,
1,
3,
0,
1,
0,
0,
0,
0,
2,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
3,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
1,
1,
0,
1,
1,
0,
0,
1,
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,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
2,
2,
2,
2,
2,
2,
0,
2,
0,
1,
2,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
3,
3,
3,
2,
1,
2,
3,
3,
2,
3,
3,
3,
3,
2,
3,
2,
1,
2,
0,
2,
1,
2,
0,
2,
0,
2,
2,
2,
0,
0,
1,
2,
0,
0,
0,
0,
1,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
1,
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
3,
3,
3,
1,
2,
2,
3,
3,
2,
3,
2,
3,
2,
2,
3,
1,
2,
2,
0,
2,
2,
2,
0,
2,
1,
2,
2,
2,
0,
0,
1,
2,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
1,
0,
0,
1,
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
3,
3,
3,
2,
3,
3,
2,
2,
2,
3,
3,
3,
3,
1,
3,
2,
2,
2,
0,
2,
0,
1,
2,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
2,
3,
3,
3,
2,
3,
2,
2,
2,
1,
2,
2,
0,
2,
2,
2,
2,
0,
2,
0,
2,
2,
2,
0,
0,
1,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
3,
3,
3,
1,
3,
2,
3,
3,
2,
3,
3,
2,
2,
1,
2,
2,
2,
2,
2,
2,
0,
2,
1,
2,
1,
2,
0,
0,
1,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
1,
0,
3,
3,
3,
3,
3,
3,
2,
3,
2,
3,
3,
2,
3,
3,
3,
3,
2,
3,
2,
3,
3,
3,
3,
3,
2,
2,
2,
2,
2,
2,
2,
1,
0,
2,
0,
1,
2,
1,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
1,
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
1,
2,
3,
3,
3,
3,
3,
3,
3,
2,
3,
2,
3,
2,
1,
2,
3,
0,
2,
1,
2,
2,
0,
2,
1,
1,
2,
1,
0,
0,
1,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
2,
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
3,
3,
3,
3,
2,
1,
3,
1,
2,
2,
2,
1,
2,
3,
3,
1,
2,
1,
2,
2,
2,
2,
0,
1,
1,
1,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
1,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
0,
2,
3,
3,
3,
1,
3,
3,
3,
1,
2,
2,
2,
2,
1,
1,
2,
2,
2,
2,
2,
2,
0,
2,
0,
1,
1,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
1,
0,
3,
3,
3,
3,
3,
3,
2,
3,
3,
3,
2,
2,
3,
3,
3,
2,
1,
2,
3,
2,
3,
2,
2,
2,
2,
1,
2,
1,
1,
1,
2,
2,
0,
2,
1,
1,
1,
1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
3,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
1,
0,
0,
0,
1,
0,
0,
0,
0,
0,
1,
0,
1,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
1,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
3,
2,
3,
3,
2,
3,
1,
2,
2,
2,
2,
3,
2,
3,
1,
1,
2,
2,
1,
2,
2,
1,
1,
0,
2,
2,
2,
2,
0,
1,
0,
1,
2,
2,
0,
0,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
1,
0,
3,
0,
0,
1,
1,
0,
1,
0,
0,
1,
1,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
2,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
0,
1,
0,
1,
0,
1,
1,
0,
1,
1,
0,
0,
0,
1,
1,
0,
1,
1,
1,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
0,
0,
0,
1,
1,
0,
1,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
3,
2,
2,
1,
2,
2,
2,
2,
2,
2,
2,
1,
2,
2,
1,
2,
2,
1,
1,
1,
1,
1,
1,
1,
1,
2,
1,
1,
0,
3,
3,
3,
0,
3,
0,
2,
2,
2,
2,
0,
0,
1,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
2,
2,
2,
3,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
1,
2,
2,
1,
2,
2,
2,
1,
1,
1,
2,
0,
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,
0,
0,
0,
0,
0,
0,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
1,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
0,
2,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
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,
0,
2,
3,
1,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
1,
2,
1,
0,
2,
1,
0,
0,
0,
0,
0,
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,
0,
3,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
0,
1,
1,
1,
1,
0,
1,
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,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
1,
1,
2,
2,
2,
2,
2,
1,
2,
2,
2,
1,
1,
2,
2,
2,
2,
2,
2,
2,
1,
2,
2,
1,
0,
1,
1,
1,
1,
0,
0,
1,
0,
0,
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,
0,
3,
2,
1,
1,
1,
1,
2,
1,
1,
2,
1,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
0,
0,
0,
0,
1,
1,
0,
0,
1,
1,
0,
0,
0,
0,
0,
0,
1,
0,
0,
2,
1,
1,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
1,
2,
2,
2,
2,
2,
1,
2,
1,
2,
1,
1,
1,
1,
0,
0,
0,
0,
0,
0,
0,
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,
0,
0,
1,
2,
1,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
1,
2,
1,
2,
1,
1,
2,
1,
1,
1,
2,
1,
2,
1,
2,
0,
1,
0,
1,
0,
0,
0,
0,
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,
0,
0,
3,
1,
2,
2,
2,
1,
2,
2,
2,
2,
2,
2,
2,
2,
1,
2,
1,
1,
1,
1,
1,
1,
2,
1,
2,
1,
1,
0,
1,
0,
1,
0,
0,
0,
0,
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,
0,
2,
1,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
2,
2,
0,
2,
0,
1,
2,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
3,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
0,
0,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
1,
1,
1,
1,
1,
1,
1,
0,
1,
1,
0,
1,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
1,
1,
1,
0,
1,
0,
0,
0,
1,
1,
0,
1,
1,
0,
0,
0,
0,
0,
1,
1,
0,
0,
0,
1,
1,
1,
2,
1,
2,
2,
2,
0,
2,
0,
2,
0,
1,
1,
2,
1,
1,
1,
1,
2,
1,
0,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
0,
0,
0,
0,
1,
0,
1,
2,
2,
0,
1,
0,
0,
1,
1,
2,
2,
1,
2,
0,
2,
0,
0,
0,
1,
2,
0,
1,
2,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
2,
1,
2,
0,
2,
0,
0,
1,
1,
1,
1,
1,
1,
0,
1,
0,
0,
0,
1,
0,
0,
1,
2,
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,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
1,
0,
2,
1,
1,
0,
1,
0,
0,
1,
1,
1,
2,
2,
0,
0,
1,
0,
0,
0,
1,
0,
0,
1,
1,
1,
2,
1,
0,
1,
1,
1,
0,
1,
0,
1,
1,
1,
1,
0,
0,
0,
1,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
2,
2,
1,
0,
2,
0,
1,
2,
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,
2,
1,
0,
0,
1,
0,
1,
1,
1,
1,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
2,
1,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
1,
0,
0,
0,
0,
1,
1,
1,
0,
1,
1,
0,
1,
0,
0,
0,
1,
1,
0,
1,
2,
0,
1,
0,
1,
0,
1,
0,
0,
1,
0,
0,
0,
0,
0,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
1,
1,
1,
0,
1,
0,
0,
1,
1,
2,
1,
1,
2,
0,
1,
0,
0,
0,
1,
1,
0,
1,
1,
0,
0,
1,
0,
0,
1,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
1,
1,
2,
0,
1,
0,
0,
0,
0,
2,
1,
1,
2,
0,
2,
0,
0,
0,
1,
1,
0,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
2,
1,
1,
0,
1,
0,
0,
2,
2,
1,
2,
1,
1,
0,
1,
0,
0,
0,
1,
1,
0,
1,
2,
0,
1,
0,
0,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
2,
2,
0,
0,
0,
0,
0,
1,
1,
0,
1,
0,
0,
1,
0,
0,
0,
0,
1,
0,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
2,
2,
0,
0,
0,
0,
2,
1,
1,
1,
0,
2,
1,
1,
0,
0,
0,
2,
1,
0,
1,
1,
0,
0,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
1,
1,
2,
0,
1,
0,
0,
1,
1,
0,
2,
1,
1,
0,
1,
0,
0,
0,
1,
1,
0,
1,
2,
2,
1,
1,
1,
0,
1,
1,
0,
1,
1,
0,
1,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
2,
1,
1,
0,
1,
0,
0,
1,
1,
0,
1,
2,
1,
0,
2,
0,
0,
0,
1,
1,
0,
1,
2,
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,
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,
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,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
1,
0,
0,
2,
0,
2,
1,
1,
0,
1,
0,
1,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
1,
0,
0,
0,
0,
0,
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,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
1,
0,
0,
1,
0,
0,
1,
0,
0,
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,
0,
1,
0,
1,
1,
2,
0,
1,
0,
0,
1,
1,
1,
0,
1,
0,
0,
1,
0,
0,
0,
1,
0,
0,
1,
1,
0,
0,
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,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
1,
1,
0,
0,
1,
0,
0,
2,
1,
1,
1,
1,
1,
0,
1,
0,
0,
0,
0,
1,
0,
1,
0,
1,
1,
1,
2,
1,
1,
1,
1,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
2,
1,
0,
0,
0,
0,
0,
1,
1,
1,
1,
1,
0,
1,
0,
0,
0,
1,
1,
0,
0
];
exports.Win1255HebrewModel = {
"charToOrderMap": exports.win1255_CharToOrderMap,
"precedenceMatrix": exports.HebrewLangModel,
"mTypicalPositiveRatio": 0.984004,
"keepEnglishLetter": false,
"charsetName": "windows-1255"
};
}
});
// node_modules/jschardet/src/hebrewprober.js
var require_hebrewprober = __commonJS({
"node_modules/jschardet/src/hebrewprober.js"(exports, module2) {
var CharSetProber = require_charsetprober();
var constants = require_constants();
if (!Array.prototype.indexOf) {
Array.prototype.indexOf = function(elt) {
var len = this.length >>> 0;
var from = Number(arguments[1]) || 0;
from = from < 0 ? Math.ceil(from) : Math.floor(from);
if (from < 0)
from += len;
for (; from < len; from++) {
if (from in this && this[from] === elt)
return from;
}
return -1;
};
}
function HebrewProber() {
CharSetProber.apply(this);
var FINAL_KAF = "\xEA";
var NORMAL_KAF = "\xEB";
var FINAL_MEM = "\xED";
var NORMAL_MEM = "\xEE";
var FINAL_NUN = "\xEF";
var NORMAL_NUN = "\xF0";
var FINAL_PE = "\xF3";
var NORMAL_PE = "\xF4";
var FINAL_TSADI = "\xF5";
var NORMAL_TSADI = "\xF6";
var MIN_FINAL_CHAR_DISTANCE = 5;
var MIN_MODEL_DISTANCE = 0.01;
var VISUAL_HEBREW_NAME = "ISO-8859-8";
var LOGICAL_HEBREW_NAME = "windows-1255";
var self = this;
function init() {
self._mLogicalProber = null;
self._mVisualProber = null;
self.reset();
}
this.reset = function() {
this._mFinalCharLogicalScore = 0;
this._mFinalCharVisualScore = 0;
this._mPrev = " ";
this._mBeforePrev = " ";
};
this.setModelProbers = function(logicalProber, visualProber) {
this._mLogicalProber = logicalProber;
this._mVisualProber = visualProber;
};
this.isFinal = function(c) {
return [FINAL_KAF, FINAL_MEM, FINAL_NUN, FINAL_PE, FINAL_TSADI].indexOf(c) != -1;
};
this.isNonFinal = function(c) {
return [NORMAL_KAF, NORMAL_MEM, NORMAL_NUN, NORMAL_PE].indexOf(c) != -1;
};
this.feed = function(aBuf) {
if (this.getState() == constants.notMe) {
return constants.notMe;
}
aBuf = this.filterHighBitOnly(aBuf);
for (var i = 0, cur; i < aBuf.length; i++) {
cur = aBuf[i];
if (cur == " ") {
if (this._mBeforePrev != " ") {
if (this.isFinal(this._mPrev)) {
this._mFinalCharLogicalScore++;
} else if (this.isNonFinal(this._mPrev)) {
this._mFinalCharVisualScore++;
}
}
} else {
if (this._mBeforePrev == " " && this.isFinal(this._mPrev) && cur != " ") {
this._mFinalCharVisualScore++;
}
}
this._mBeforePrev = this._mPrev;
this._mPrev = cur;
}
return constants.detecting;
};
this.getCharsetName = function() {
var finalsub = this._mFinalCharLogicalScore - this._mFinalCharVisualScore;
if (finalsub >= MIN_FINAL_CHAR_DISTANCE) {
return LOGICAL_HEBREW_NAME;
}
if (finalsub <= -MIN_FINAL_CHAR_DISTANCE) {
return VISUAL_HEBREW_NAME;
}
var modelsub = this._mLogicalProber.getConfidence() - this._mVisualProber.getConfidence();
if (modelsub > MIN_MODEL_DISTANCE) {
return LOGICAL_HEBREW_NAME;
}
if (modelsub < -MIN_MODEL_DISTANCE) {
return VISUAL_HEBREW_NAME;
}
if (finalsub < 0) {
return VISUAL_HEBREW_NAME;
}
return LOGICAL_HEBREW_NAME;
};
this.getState = function() {
if (this._mLogicalProber.getState() == constants.notMe && this._mVisualProber.getState() == constants.notMe) {
return constants.notMe;
}
return constants.detecting;
};
init();
}
HebrewProber.prototype = new CharSetProber();
module2.exports = HebrewProber;
}
});
// node_modules/jschardet/src/langcyrillicmodel.js
var require_langcyrillicmodel = __commonJS({
"node_modules/jschardet/src/langcyrillicmodel.js"(exports) {
exports.KOI8R_CharToOrderMap = [
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
254,
255,
255,
254,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
252,
252,
252,
252,
252,
252,
252,
252,
252,
252,
253,
253,
253,
253,
253,
253,
253,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
74,
153,
75,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
253,
253,
253,
253,
253,
253,
71,
172,
66,
173,
65,
174,
76,
175,
64,
176,
177,
77,
72,
178,
69,
67,
179,
78,
73,
180,
181,
79,
182,
183,
184,
185,
253,
253,
253,
253,
253,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
68,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
27,
3,
21,
28,
13,
2,
39,
19,
26,
4,
23,
11,
8,
12,
5,
1,
15,
16,
9,
7,
6,
14,
24,
10,
17,
18,
20,
25,
30,
29,
22,
54,
59,
37,
44,
58,
41,
48,
53,
46,
55,
42,
60,
36,
49,
38,
31,
34,
35,
43,
45,
32,
40,
52,
56,
33,
61,
62,
51,
57,
47,
63,
50,
70
];
exports.win1251_CharToOrderMap = [
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
254,
255,
255,
254,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
252,
252,
252,
252,
252,
252,
252,
252,
252,
252,
253,
253,
253,
253,
253,
253,
253,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
74,
153,
75,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
253,
253,
253,
253,
253,
253,
71,
172,
66,
173,
65,
174,
76,
175,
64,
176,
177,
77,
72,
178,
69,
67,
179,
78,
73,
180,
181,
79,
182,
183,
184,
185,
253,
253,
253,
253,
253,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
68,
247,
248,
249,
250,
251,
252,
253,
37,
44,
33,
46,
41,
48,
56,
51,
42,
60,
36,
49,
38,
31,
34,
35,
45,
32,
40,
52,
53,
55,
58,
50,
57,
63,
70,
62,
61,
47,
59,
43,
3,
21,
10,
19,
13,
2,
24,
20,
4,
23,
11,
8,
12,
5,
1,
15,
9,
7,
6,
14,
39,
26,
28,
22,
25,
29,
54,
18,
17,
30,
27,
16
];
exports.latin5_CharToOrderMap = [
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
254,
255,
255,
254,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
252,
252,
252,
252,
252,
252,
252,
252,
252,
252,
253,
253,
253,
253,
253,
253,
253,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
74,
153,
75,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
253,
253,
253,
253,
253,
253,
71,
172,
66,
173,
65,
174,
76,
175,
64,
176,
177,
77,
72,
178,
69,
67,
179,
78,
73,
180,
181,
79,
182,
183,
184,
185,
253,
253,
253,
253,
253,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
37,
44,
33,
46,
41,
48,
56,
51,
42,
60,
36,
49,
38,
31,
34,
35,
45,
32,
40,
52,
53,
55,
58,
50,
57,
63,
70,
62,
61,
47,
59,
43,
3,
21,
10,
19,
13,
2,
24,
20,
4,
23,
11,
8,
12,
5,
1,
15,
9,
7,
6,
14,
39,
26,
28,
22,
25,
29,
54,
18,
17,
30,
27,
16,
239,
68,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
255
];
exports.macCyrillic_CharToOrderMap = [
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
254,
255,
255,
254,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
252,
252,
252,
252,
252,
252,
252,
252,
252,
252,
253,
253,
253,
253,
253,
253,
253,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
74,
153,
75,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
253,
253,
253,
253,
253,
253,
71,
172,
66,
173,
65,
174,
76,
175,
64,
176,
177,
77,
72,
178,
69,
67,
179,
78,
73,
180,
181,
79,
182,
183,
184,
185,
253,
253,
253,
253,
253,
37,
44,
33,
46,
41,
48,
56,
51,
42,
60,
36,
49,
38,
31,
34,
35,
45,
32,
40,
52,
53,
55,
58,
50,
57,
63,
70,
62,
61,
47,
59,
43,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
68,
16,
3,
21,
10,
19,
13,
2,
24,
20,
4,
23,
11,
8,
12,
5,
1,
15,
9,
7,
6,
14,
39,
26,
28,
22,
25,
29,
54,
18,
17,
30,
27,
255
];
exports.IBM855_CharToOrderMap = [
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
254,
255,
255,
254,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
252,
252,
252,
252,
252,
252,
252,
252,
252,
252,
253,
253,
253,
253,
253,
253,
253,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
74,
153,
75,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
253,
253,
253,
253,
253,
253,
71,
172,
66,
173,
65,
174,
76,
175,
64,
176,
177,
77,
72,
178,
69,
67,
179,
78,
73,
180,
181,
79,
182,
183,
184,
185,
253,
253,
253,
253,
253,
191,
192,
193,
194,
68,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
27,
59,
54,
70,
3,
37,
21,
44,
28,
58,
13,
41,
2,
48,
39,
53,
19,
46,
218,
219,
220,
221,
222,
223,
224,
26,
55,
4,
42,
225,
226,
227,
228,
23,
60,
229,
230,
231,
232,
233,
234,
235,
11,
36,
236,
237,
238,
239,
240,
241,
242,
243,
8,
49,
12,
38,
5,
31,
1,
34,
15,
244,
245,
246,
247,
35,
16,
248,
43,
9,
45,
7,
32,
6,
40,
14,
52,
24,
56,
10,
33,
17,
61,
249,
250,
18,
62,
20,
51,
25,
57,
30,
47,
29,
63,
22,
50,
251,
252,
255
];
exports.IBM866_CharToOrderMap = [
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
254,
255,
255,
254,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
252,
252,
252,
252,
252,
252,
252,
252,
252,
252,
253,
253,
253,
253,
253,
253,
253,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
74,
153,
75,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
253,
253,
253,
253,
253,
253,
71,
172,
66,
173,
65,
174,
76,
175,
64,
176,
177,
77,
72,
178,
69,
67,
179,
78,
73,
180,
181,
79,
182,
183,
184,
185,
253,
253,
253,
253,
253,
37,
44,
33,
46,
41,
48,
56,
51,
42,
60,
36,
49,
38,
31,
34,
35,
45,
32,
40,
52,
53,
55,
58,
50,
57,
63,
70,
62,
61,
47,
59,
43,
3,
21,
10,
19,
13,
2,
24,
20,
4,
23,
11,
8,
12,
5,
1,
15,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
9,
7,
6,
14,
39,
26,
28,
22,
25,
29,
54,
18,
17,
30,
27,
16,
239,
68,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
255
];
exports.RussianLangModel = [
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
1,
1,
3,
3,
3,
3,
1,
3,
3,
3,
2,
3,
2,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
0,
3,
2,
2,
2,
2,
2,
0,
0,
2,
3,
3,
3,
2,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
3,
3,
0,
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
3,
2,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
2,
2,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
3,
3,
0,
0,
3,
3,
3,
3,
3,
3,
3,
3,
2,
3,
3,
1,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
2,
3,
2,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
0,
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
1,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
3,
3,
0,
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
1,
0,
0,
0,
0,
0,
1,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
3,
3,
3,
3,
2,
2,
2,
3,
1,
3,
3,
1,
3,
3,
3,
3,
2,
2,
3,
0,
2,
2,
2,
3,
3,
2,
1,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
3,
3,
2,
3,
3,
3,
3,
3,
2,
2,
3,
2,
3,
3,
3,
2,
1,
2,
2,
0,
1,
2,
2,
2,
2,
2,
2,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
2,
2,
3,
0,
2,
2,
3,
3,
2,
1,
2,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
3,
3,
2,
3,
3,
1,
2,
3,
2,
2,
3,
2,
3,
3,
3,
3,
2,
2,
3,
0,
3,
2,
2,
3,
1,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
3,
3,
3,
3,
2,
2,
3,
3,
3,
3,
3,
2,
3,
3,
3,
3,
2,
2,
2,
0,
3,
3,
3,
2,
2,
2,
2,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
3,
2,
3,
3,
3,
3,
3,
3,
2,
3,
2,
2,
0,
1,
3,
2,
1,
2,
2,
1,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
1,
1,
3,
0,
1,
1,
1,
1,
2,
1,
1,
0,
2,
2,
2,
1,
2,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
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,
3,
3,
3,
3,
3,
3,
2,
3,
3,
2,
2,
2,
2,
1,
3,
2,
3,
2,
3,
2,
1,
2,
2,
0,
1,
1,
2,
1,
2,
1,
2,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
2,
3,
2,
3,
3,
3,
2,
2,
2,
2,
0,
2,
2,
2,
2,
3,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
2,
3,
2,
2,
3,
3,
3,
3,
3,
3,
3,
3,
3,
1,
3,
2,
0,
0,
3,
3,
3,
3,
2,
3,
3,
3,
3,
2,
3,
2,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
3,
3,
3,
3,
3,
2,
2,
3,
3,
0,
2,
1,
0,
3,
2,
3,
2,
3,
0,
0,
1,
2,
0,
0,
1,
0,
1,
2,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
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,
3,
0,
3,
0,
2,
3,
3,
3,
3,
2,
3,
3,
3,
3,
1,
2,
2,
0,
0,
2,
3,
2,
2,
2,
3,
2,
3,
2,
2,
3,
0,
0,
0,
0,
0,
0,
0,
0,
0,
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,
3,
2,
3,
0,
2,
3,
2,
3,
0,
1,
2,
3,
3,
2,
0,
2,
3,
0,
0,
2,
3,
2,
2,
0,
1,
3,
1,
3,
2,
2,
1,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
1,
3,
0,
2,
3,
3,
3,
3,
3,
3,
3,
3,
2,
1,
3,
2,
0,
0,
2,
2,
3,
3,
3,
2,
3,
3,
0,
2,
2,
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,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
3,
3,
2,
2,
3,
3,
2,
2,
2,
3,
3,
0,
0,
1,
1,
1,
1,
1,
2,
0,
0,
1,
1,
1,
1,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
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,
3,
3,
3,
3,
3,
3,
2,
2,
3,
3,
3,
3,
3,
3,
3,
0,
3,
2,
3,
3,
2,
3,
2,
0,
2,
1,
0,
1,
1,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
3,
3,
2,
3,
3,
3,
2,
2,
2,
2,
3,
1,
3,
2,
3,
1,
1,
2,
1,
0,
2,
2,
2,
2,
1,
3,
1,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
2,
3,
3,
3,
3,
3,
1,
2,
2,
1,
3,
1,
0,
3,
0,
0,
3,
0,
0,
0,
1,
1,
0,
1,
2,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
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,
3,
2,
2,
1,
1,
3,
3,
3,
2,
2,
1,
2,
2,
3,
1,
1,
2,
0,
0,
2,
2,
1,
3,
0,
0,
2,
1,
1,
2,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
2,
3,
3,
3,
3,
1,
2,
2,
2,
1,
2,
1,
3,
3,
1,
1,
2,
1,
2,
1,
2,
2,
0,
2,
0,
0,
1,
1,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
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,
2,
3,
3,
3,
3,
3,
2,
1,
3,
2,
2,
3,
2,
0,
3,
2,
0,
3,
0,
1,
0,
1,
1,
0,
0,
1,
1,
1,
1,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
2,
3,
3,
3,
2,
2,
2,
3,
3,
1,
2,
1,
2,
1,
0,
1,
0,
1,
1,
0,
1,
0,
0,
2,
1,
1,
1,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
1,
1,
2,
1,
2,
3,
3,
2,
2,
1,
2,
2,
3,
0,
2,
1,
0,
0,
2,
2,
3,
2,
1,
2,
2,
2,
2,
2,
3,
1,
0,
0,
0,
0,
0,
0,
0,
0,
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,
3,
3,
3,
3,
3,
1,
1,
0,
1,
1,
2,
2,
1,
1,
3,
0,
0,
1,
3,
1,
1,
1,
0,
0,
0,
1,
0,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
1,
3,
3,
3,
2,
0,
0,
0,
2,
1,
0,
1,
0,
2,
0,
0,
2,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
1,
0,
0,
2,
3,
2,
2,
2,
1,
2,
2,
2,
1,
2,
1,
0,
0,
1,
1,
1,
0,
2,
0,
1,
1,
1,
0,
0,
1,
1,
1,
0,
0,
0,
0,
0,
1,
2,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
3,
3,
3,
3,
0,
0,
0,
0,
1,
0,
0,
0,
0,
3,
0,
1,
2,
1,
0,
0,
0,
0,
0,
0,
0,
1,
1,
0,
0,
1,
1,
1,
0,
1,
0,
1,
2,
0,
0,
1,
1,
2,
1,
0,
1,
1,
1,
1,
0,
1,
1,
1,
1,
0,
1,
0,
0,
1,
0,
0,
1,
1,
0,
2,
2,
3,
2,
2,
2,
3,
1,
2,
2,
2,
2,
2,
2,
2,
2,
1,
1,
1,
1,
1,
1,
1,
0,
1,
0,
1,
1,
1,
0,
2,
1,
1,
1,
1,
1,
1,
1,
1,
1,
2,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
1,
0,
1,
1,
0,
1,
1,
1,
0,
1,
1,
0,
3,
3,
3,
2,
2,
2,
2,
3,
2,
2,
1,
1,
2,
2,
2,
2,
1,
1,
3,
1,
2,
1,
2,
0,
0,
1,
1,
0,
1,
0,
2,
1,
1,
1,
1,
1,
1,
2,
1,
0,
1,
1,
1,
1,
0,
1,
0,
0,
1,
1,
0,
0,
1,
0,
1,
0,
0,
1,
0,
0,
0,
1,
1,
0,
2,
0,
0,
1,
0,
3,
2,
2,
2,
2,
1,
2,
1,
2,
1,
2,
0,
0,
0,
2,
1,
2,
2,
1,
1,
2,
2,
0,
1,
1,
0,
2,
1,
1,
1,
1,
1,
0,
1,
1,
1,
2,
1,
1,
1,
2,
1,
0,
1,
2,
1,
1,
1,
1,
0,
1,
1,
1,
0,
0,
1,
0,
0,
1,
1,
3,
2,
2,
2,
1,
1,
1,
2,
3,
0,
0,
0,
0,
2,
0,
2,
2,
1,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
1,
1,
0,
1,
1,
0,
1,
0,
1,
1,
0,
1,
1,
0,
2,
0,
0,
1,
1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
0,
2,
3,
2,
3,
2,
1,
2,
2,
2,
2,
1,
0,
0,
0,
2,
0,
0,
1,
1,
0,
0,
0,
0,
0,
0,
0,
1,
1,
0,
0,
2,
1,
1,
1,
2,
1,
0,
2,
0,
0,
1,
0,
1,
0,
0,
1,
0,
0,
1,
1,
0,
1,
1,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
3,
0,
0,
1,
0,
2,
2,
2,
3,
2,
2,
2,
2,
2,
2,
2,
0,
0,
0,
2,
1,
2,
1,
1,
1,
2,
2,
0,
0,
0,
1,
2,
1,
1,
1,
1,
1,
0,
1,
2,
1,
1,
1,
1,
1,
1,
1,
0,
1,
1,
1,
1,
1,
1,
0,
1,
1,
1,
1,
1,
1,
0,
0,
1,
2,
3,
2,
3,
3,
2,
0,
1,
1,
1,
0,
0,
1,
0,
2,
0,
1,
1,
3,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
2,
1,
1,
1,
1,
1,
1,
1,
1,
0,
1,
0,
1,
1,
1,
1,
0,
1,
1,
1,
0,
0,
1,
1,
0,
1,
0,
0,
0,
0,
0,
0,
1,
0,
2,
3,
3,
3,
3,
1,
2,
2,
2,
2,
0,
1,
1,
0,
2,
1,
1,
1,
2,
1,
0,
1,
1,
0,
0,
1,
0,
1,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
3,
3,
3,
2,
0,
0,
1,
1,
2,
2,
1,
0,
0,
2,
0,
1,
1,
3,
0,
0,
1,
0,
0,
0,
0,
0,
1,
0,
1,
2,
1,
1,
1,
2,
0,
1,
1,
1,
0,
1,
0,
1,
1,
0,
1,
0,
1,
1,
1,
1,
0,
1,
0,
0,
0,
0,
0,
0,
1,
0,
1,
1,
0,
1,
3,
2,
3,
2,
1,
0,
0,
2,
2,
2,
0,
1,
0,
2,
0,
1,
1,
1,
0,
1,
0,
0,
0,
3,
0,
1,
1,
0,
0,
2,
1,
1,
1,
1,
0,
1,
1,
0,
0,
0,
0,
1,
1,
0,
1,
0,
0,
2,
1,
1,
0,
1,
0,
0,
0,
1,
0,
1,
0,
0,
1,
1,
0,
3,
1,
2,
1,
1,
2,
2,
2,
2,
2,
2,
1,
2,
2,
1,
1,
0,
0,
0,
2,
2,
2,
0,
0,
0,
1,
2,
1,
0,
1,
0,
1,
2,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
2,
1,
1,
1,
0,
1,
0,
1,
1,
0,
1,
1,
1,
0,
0,
1,
3,
0,
0,
0,
0,
2,
0,
1,
1,
1,
1,
1,
1,
1,
0,
1,
0,
0,
0,
1,
1,
1,
0,
1,
0,
1,
1,
0,
0,
1,
0,
1,
1,
1,
0,
0,
1,
0,
0,
0,
1,
0,
1,
1,
0,
0,
1,
0,
1,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
1,
0,
0,
0,
1,
1,
3,
3,
2,
2,
0,
0,
0,
2,
2,
0,
0,
0,
1,
2,
0,
1,
1,
2,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
2,
1,
0,
1,
1,
0,
0,
1,
1,
0,
0,
0,
1,
1,
0,
1,
1,
0,
1,
1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
2,
3,
2,
3,
2,
0,
0,
0,
0,
1,
1,
0,
0,
0,
2,
0,
2,
0,
2,
0,
0,
0,
0,
0,
1,
0,
0,
1,
0,
0,
1,
1,
1,
1,
2,
0,
1,
2,
1,
0,
1,
1,
2,
1,
1,
1,
1,
1,
2,
1,
1,
0,
1,
0,
0,
1,
1,
1,
1,
1,
0,
1,
1,
0,
1,
3,
2,
2,
2,
1,
0,
0,
2,
2,
1,
0,
1,
2,
2,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
1,
1,
0,
0,
1,
1,
0,
1,
1,
0,
0,
1,
1,
0,
1,
1,
0,
0,
1,
1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
1,
0,
2,
3,
1,
2,
2,
2,
2,
2,
2,
1,
1,
0,
0,
0,
1,
0,
1,
0,
2,
1,
1,
1,
0,
0,
0,
0,
1,
1,
1,
0,
1,
1,
0,
1,
1,
1,
1,
0,
0,
0,
1,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
2,
0,
2,
0,
0,
1,
0,
3,
2,
1,
2,
1,
2,
2,
0,
1,
0,
0,
0,
2,
1,
0,
0,
2,
1,
1,
1,
1,
0,
2,
0,
2,
2,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
2,
1,
0,
1,
1,
1,
1,
0,
0,
0,
1,
1,
1,
1,
0,
1,
0,
0,
1,
1,
2,
2,
2,
2,
1,
0,
0,
1,
0,
0,
0,
0,
0,
2,
0,
1,
1,
1,
1,
0,
0,
0,
0,
1,
0,
1,
2,
0,
0,
2,
0,
1,
0,
1,
1,
1,
2,
1,
0,
1,
0,
1,
1,
0,
0,
1,
0,
1,
1,
1,
0,
1,
0,
0,
0,
1,
0,
0,
1,
0,
1,
1,
0,
2,
1,
2,
2,
2,
0,
3,
0,
1,
1,
0,
0,
0,
0,
2,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
1,
1,
1,
0,
0,
1,
0,
1,
0,
0,
0,
0,
0,
1,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
1,
2,
2,
3,
2,
2,
0,
0,
1,
1,
2,
0,
1,
2,
1,
0,
1,
0,
1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
1,
1,
0,
0,
1,
1,
0,
0,
1,
1,
0,
0,
1,
1,
0,
1,
1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
0,
2,
2,
1,
1,
2,
1,
2,
2,
2,
2,
2,
1,
2,
2,
0,
1,
0,
0,
0,
1,
2,
2,
2,
1,
2,
1,
1,
1,
1,
1,
2,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
0,
1,
1,
1,
0,
1,
1,
1,
0,
0,
0,
0,
1,
1,
1,
0,
1,
1,
0,
0,
1,
1,
2,
2,
2,
2,
0,
1,
0,
2,
2,
0,
0,
0,
0,
2,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
1,
0,
1,
1,
0,
0,
1,
1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
2,
2,
2,
2,
0,
0,
0,
2,
2,
2,
0,
1,
0,
1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
0,
1,
1,
0,
0,
1,
1,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
2,
2,
2,
2,
0,
0,
0,
0,
1,
0,
0,
1,
1,
2,
0,
0,
0,
0,
1,
0,
1,
0,
0,
1,
0,
0,
2,
0,
0,
0,
1,
0,
0,
1,
0,
0,
1,
0,
0,
0,
1,
1,
0,
0,
0,
0,
0,
1,
0,
0,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
2,
2,
2,
1,
1,
2,
0,
2,
1,
1,
1,
1,
0,
2,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
0,
0,
0,
1,
1,
0,
0,
1,
0,
1,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
1,
1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
2,
1,
2,
0,
0,
0,
0,
0,
1,
0,
0,
0,
1,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
1,
0,
1,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
1,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
0,
0,
0,
2,
0,
1,
2,
1,
0,
1,
1,
1,
0,
1,
0,
0,
0,
1,
0,
1,
0,
0,
1,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
1,
0,
0,
1,
1,
0,
0,
1,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
2,
2,
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,
0,
0,
1,
1,
0,
0,
0,
1,
0,
0,
0,
1,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
0,
2,
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,
0,
0,
0,
0,
1,
1,
1,
1,
0,
1,
0,
1,
0,
0,
1,
1,
1,
1,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
1,
0,
1,
0,
0,
0,
0,
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,
0,
0,
0,
0,
1,
1,
1,
0,
1,
1,
0,
1,
0,
1,
0,
0,
0,
0,
1,
1,
0,
1,
1,
0,
0,
0,
0,
0,
1,
0,
1,
1,
0,
1,
0,
0,
0,
0,
1,
1,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0
];
exports.Koi8rModel = {
"charToOrderMap": exports.KOI8R_CharToOrderMap,
"precedenceMatrix": exports.RussianLangModel,
"mTypicalPositiveRatio": 0.976601,
"keepEnglishLetter": false,
"charsetName": "KOI8-R"
};
exports.Win1251CyrillicModel = {
"charToOrderMap": exports.win1251_CharToOrderMap,
"precedenceMatrix": exports.RussianLangModel,
"mTypicalPositiveRatio": 0.976601,
"keepEnglishLetter": false,
"charsetName": "windows-1251"
};
exports.Latin5CyrillicModel = {
"charToOrderMap": exports.latin5_CharToOrderMap,
"precedenceMatrix": exports.RussianLangModel,
"mTypicalPositiveRatio": 0.976601,
"keepEnglishLetter": false,
"charsetName": "ISO-8859-5"
};
exports.MacCyrillicModel = {
"charToOrderMap": exports.macCyrillic_CharToOrderMap,
"precedenceMatrix": exports.RussianLangModel,
"mTypicalPositiveRatio": 0.976601,
"keepEnglishLetter": false,
"charsetName": "x-mac-cyrillic"
};
exports.Ibm866Model = {
"charToOrderMap": exports.IBM866_CharToOrderMap,
"precedenceMatrix": exports.RussianLangModel,
"mTypicalPositiveRatio": 0.976601,
"keepEnglishLetter": false,
"charsetName": "IBM866"
};
exports.Ibm855Model = {
"charToOrderMap": exports.IBM855_CharToOrderMap,
"precedenceMatrix": exports.RussianLangModel,
"mTypicalPositiveRatio": 0.976601,
"keepEnglishLetter": false,
"charsetName": "IBM855"
};
}
});
// node_modules/jschardet/src/langgreekmodel.js
var require_langgreekmodel = __commonJS({
"node_modules/jschardet/src/langgreekmodel.js"(exports) {
exports.Latin7_CharToOrderMap = [
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
254,
255,
255,
254,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
252,
252,
252,
252,
252,
252,
252,
252,
252,
252,
253,
253,
253,
253,
253,
253,
253,
82,
100,
104,
94,
98,
101,
116,
102,
111,
187,
117,
92,
88,
113,
85,
79,
118,
105,
83,
67,
114,
119,
95,
99,
109,
188,
253,
253,
253,
253,
253,
253,
72,
70,
80,
81,
60,
96,
93,
89,
68,
120,
97,
77,
86,
69,
55,
78,
115,
65,
66,
58,
76,
106,
103,
87,
107,
112,
253,
253,
253,
253,
253,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
253,
233,
90,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
74,
253,
253,
253,
253,
253,
253,
247,
248,
61,
36,
46,
71,
73,
253,
54,
253,
108,
123,
110,
31,
51,
43,
41,
34,
91,
40,
52,
47,
44,
53,
38,
49,
59,
39,
35,
48,
250,
37,
33,
45,
56,
50,
84,
57,
120,
121,
17,
18,
22,
15,
124,
1,
29,
20,
21,
3,
32,
13,
25,
5,
11,
16,
10,
6,
30,
4,
9,
8,
14,
7,
2,
12,
28,
23,
42,
24,
64,
75,
19,
26,
27,
253
];
exports.win1253_CharToOrderMap = [
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
254,
255,
255,
254,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
252,
252,
252,
252,
252,
252,
252,
252,
252,
252,
253,
253,
253,
253,
253,
253,
253,
82,
100,
104,
94,
98,
101,
116,
102,
111,
187,
117,
92,
88,
113,
85,
79,
118,
105,
83,
67,
114,
119,
95,
99,
109,
188,
253,
253,
253,
253,
253,
253,
72,
70,
80,
81,
60,
96,
93,
89,
68,
120,
97,
77,
86,
69,
55,
78,
115,
65,
66,
58,
76,
106,
103,
87,
107,
112,
253,
253,
253,
253,
253,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
253,
233,
61,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
74,
253,
253,
253,
253,
253,
253,
247,
253,
253,
36,
46,
71,
73,
253,
54,
253,
108,
123,
110,
31,
51,
43,
41,
34,
91,
40,
52,
47,
44,
53,
38,
49,
59,
39,
35,
48,
250,
37,
33,
45,
56,
50,
84,
57,
120,
121,
17,
18,
22,
15,
124,
1,
29,
20,
21,
3,
32,
13,
25,
5,
11,
16,
10,
6,
30,
4,
9,
8,
14,
7,
2,
12,
28,
23,
42,
24,
64,
75,
19,
26,
27,
253
];
exports.GreekLangModel = [
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,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
2,
2,
3,
3,
3,
3,
3,
3,
3,
3,
1,
3,
3,
3,
0,
2,
2,
3,
3,
0,
3,
0,
3,
2,
0,
3,
3,
3,
0,
3,
0,
0,
0,
2,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
3,
0,
3,
3,
0,
3,
2,
3,
3,
0,
3,
2,
3,
3,
3,
0,
0,
3,
0,
3,
0,
3,
3,
2,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
3,
2,
2,
3,
3,
3,
3,
3,
3,
3,
3,
0,
3,
3,
3,
3,
0,
2,
3,
3,
0,
3,
3,
3,
3,
2,
3,
3,
3,
0,
2,
0,
0,
0,
2,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
3,
3,
2,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
0,
2,
1,
3,
3,
3,
3,
2,
3,
3,
2,
3,
3,
2,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
0,
3,
3,
3,
3,
3,
3,
0,
3,
3,
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
0,
3,
2,
3,
3,
0,
2,
0,
1,
0,
2,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
3,
2,
3,
0,
0,
0,
0,
3,
3,
0,
3,
1,
3,
3,
3,
0,
3,
3,
0,
3,
3,
3,
3,
0,
0,
0,
0,
2,
0,
0,
0,
2,
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,
0,
0,
3,
3,
3,
3,
3,
0,
3,
0,
3,
3,
3,
3,
3,
0,
3,
2,
2,
2,
3,
0,
2,
3,
3,
3,
3,
3,
2,
3,
3,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
3,
3,
2,
2,
2,
3,
3,
3,
3,
0,
3,
1,
3,
3,
3,
3,
2,
3,
3,
3,
3,
3,
3,
3,
2,
2,
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,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
3,
2,
0,
3,
0,
0,
0,
3,
3,
2,
3,
3,
3,
3,
3,
0,
0,
3,
2,
3,
0,
2,
3,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
0,
3,
3,
3,
3,
0,
0,
3,
3,
0,
2,
3,
0,
3,
0,
3,
3,
3,
0,
0,
3,
0,
3,
0,
2,
2,
3,
3,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
3,
2,
0,
3,
2,
3,
3,
3,
3,
0,
3,
3,
3,
3,
3,
0,
3,
3,
2,
3,
2,
3,
3,
2,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
2,
3,
2,
3,
3,
3,
3,
3,
3,
0,
2,
3,
2,
3,
2,
2,
2,
3,
2,
3,
3,
2,
3,
0,
2,
2,
2,
3,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
0,
0,
0,
3,
3,
3,
2,
3,
3,
0,
0,
3,
0,
3,
0,
0,
0,
3,
2,
0,
3,
0,
3,
0,
0,
2,
0,
2,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
2,
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,
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,
0,
0,
0,
0,
0,
2,
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,
0,
0,
3,
3,
3,
3,
0,
3,
3,
3,
3,
3,
3,
0,
3,
3,
0,
3,
0,
0,
0,
3,
3,
0,
3,
3,
3,
0,
0,
1,
2,
3,
0,
3,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
3,
2,
0,
0,
3,
2,
2,
3,
3,
0,
3,
3,
3,
3,
3,
2,
1,
3,
0,
3,
2,
3,
3,
2,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
0,
2,
3,
3,
3,
3,
3,
3,
0,
0,
3,
0,
3,
0,
0,
0,
3,
3,
0,
3,
2,
3,
0,
0,
3,
3,
3,
0,
3,
0,
0,
0,
2,
0,
0,
0,
0,
0,
3,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
0,
3,
3,
3,
3,
3,
3,
0,
0,
3,
0,
3,
0,
0,
0,
3,
2,
0,
3,
2,
3,
0,
0,
3,
2,
3,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
1,
2,
2,
3,
3,
3,
3,
3,
3,
0,
2,
3,
0,
3,
0,
0,
0,
3,
3,
0,
3,
0,
2,
0,
0,
2,
3,
1,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
0,
3,
3,
3,
3,
0,
3,
0,
3,
3,
2,
3,
0,
3,
3,
3,
3,
3,
3,
0,
3,
3,
3,
0,
2,
3,
0,
0,
3,
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,
0,
0,
0,
0,
0,
0,
0,
0,
3,
0,
3,
3,
3,
0,
0,
3,
0,
0,
0,
3,
3,
0,
3,
0,
2,
3,
3,
0,
0,
3,
0,
3,
0,
3,
3,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
0,
0,
0,
3,
3,
3,
3,
3,
3,
0,
0,
3,
0,
2,
0,
0,
0,
3,
3,
0,
3,
0,
3,
0,
0,
2,
0,
2,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
3,
3,
0,
3,
0,
2,
0,
3,
2,
0,
3,
2,
3,
2,
3,
0,
0,
3,
2,
3,
2,
3,
3,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
0,
0,
2,
3,
3,
3,
3,
3,
0,
0,
0,
3,
0,
2,
1,
0,
0,
3,
2,
2,
2,
0,
3,
0,
0,
2,
2,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
0,
3,
3,
3,
2,
0,
3,
0,
3,
0,
3,
3,
0,
2,
1,
2,
3,
3,
0,
0,
3,
0,
3,
0,
3,
3,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
3,
3,
3,
0,
3,
3,
3,
3,
3,
3,
0,
2,
3,
0,
3,
0,
0,
0,
2,
1,
0,
2,
2,
3,
0,
0,
2,
2,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
0,
0,
2,
3,
3,
3,
2,
3,
0,
0,
1,
3,
0,
2,
0,
0,
0,
0,
3,
0,
1,
0,
2,
0,
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,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
3,
1,
0,
3,
0,
0,
0,
3,
2,
0,
3,
2,
3,
3,
3,
0,
0,
3,
0,
3,
2,
2,
2,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
0,
3,
3,
3,
0,
0,
3,
0,
0,
0,
0,
2,
0,
2,
3,
3,
2,
2,
2,
2,
3,
0,
2,
0,
2,
2,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
2,
0,
0,
0,
0,
0,
0,
2,
3,
0,
2,
0,
2,
3,
2,
0,
0,
3,
0,
3,
0,
3,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
2,
3,
3,
2,
2,
3,
0,
2,
0,
3,
0,
0,
0,
2,
0,
0,
0,
0,
1,
2,
0,
2,
0,
2,
0,
0,
2,
0,
2,
0,
2,
2,
0,
0,
1,
0,
2,
2,
2,
0,
2,
2,
2,
0,
2,
2,
2,
0,
0,
2,
0,
0,
1,
0,
0,
0,
0,
0,
2,
0,
3,
3,
2,
0,
0,
0,
0,
0,
0,
1,
3,
0,
2,
0,
2,
2,
2,
0,
0,
2,
0,
3,
0,
0,
2,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
0,
2,
3,
2,
0,
2,
2,
0,
2,
0,
2,
2,
0,
2,
0,
2,
2,
2,
0,
0,
0,
0,
0,
0,
2,
3,
0,
0,
0,
2,
0,
1,
2,
0,
0,
0,
0,
2,
2,
0,
0,
0,
2,
1,
0,
2,
2,
0,
0,
0,
0,
0,
0,
1,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
2,
1,
0,
2,
3,
2,
2,
3,
2,
3,
2,
0,
0,
3,
3,
3,
0,
0,
3,
2,
0,
0,
0,
1,
1,
0,
2,
0,
2,
2,
0,
2,
0,
2,
0,
2,
2,
0,
0,
2,
0,
2,
2,
2,
0,
2,
2,
2,
2,
0,
0,
2,
0,
0,
0,
2,
0,
1,
0,
0,
0,
0,
0,
3,
0,
3,
3,
2,
2,
0,
3,
0,
0,
0,
2,
2,
0,
2,
2,
2,
1,
2,
0,
0,
1,
2,
2,
0,
0,
3,
0,
0,
0,
2,
0,
1,
2,
0,
0,
0,
1,
2,
0,
0,
0,
0,
0,
0,
0,
2,
2,
0,
1,
0,
0,
2,
0,
0,
0,
2,
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,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
3,
3,
2,
2,
0,
0,
0,
2,
0,
2,
3,
3,
0,
2,
0,
0,
0,
0,
0,
0,
2,
2,
2,
0,
2,
2,
0,
2,
0,
2,
0,
2,
2,
0,
0,
2,
2,
2,
2,
1,
0,
0,
2,
2,
0,
2,
0,
0,
2,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
2,
0,
3,
2,
3,
0,
0,
0,
3,
0,
0,
2,
2,
0,
2,
0,
2,
2,
2,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
2,
2,
0,
0,
2,
2,
2,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
3,
2,
0,
2,
2,
2,
2,
2,
0,
0,
0,
2,
0,
0,
0,
0,
2,
0,
1,
0,
0,
2,
0,
1,
0,
0,
0,
0,
2,
2,
2,
0,
2,
2,
0,
1,
2,
0,
2,
2,
2,
0,
2,
2,
2,
2,
1,
2,
2,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
2,
0,
2,
2,
0,
0,
0,
0,
1,
2,
1,
0,
0,
2,
2,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
2,
3,
0,
0,
2,
0,
0,
0,
2,
2,
0,
2,
0,
0,
0,
1,
0,
0,
2,
0,
2,
0,
2,
2,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
2,
2,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
2,
2,
3,
2,
2,
0,
0,
0,
0,
0,
0,
1,
3,
0,
2,
0,
2,
2,
0,
0,
0,
1,
0,
2,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
2,
0,
3,
2,
0,
2,
0,
0,
0,
0,
0,
0,
2,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
2,
0,
0,
0,
0,
1,
1,
0,
0,
2,
1,
2,
0,
2,
2,
0,
1,
0,
0,
1,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
3,
0,
2,
2,
2,
0,
0,
2,
0,
0,
0,
2,
0,
0,
0,
2,
3,
0,
2,
0,
0,
0,
0,
0,
0,
2,
2,
0,
0,
0,
2,
0,
1,
2,
0,
0,
0,
1,
2,
2,
1,
0,
0,
0,
2,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
1,
2,
0,
2,
2,
0,
2,
0,
0,
2,
0,
0,
0,
0,
1,
2,
1,
0,
2,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
3,
1,
2,
2,
0,
2,
0,
0,
0,
0,
2,
0,
0,
0,
2,
0,
0,
3,
0,
0,
0,
0,
2,
2,
2,
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,
0,
0,
0,
0,
0,
0,
0,
0,
2,
1,
0,
2,
0,
1,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
1,
0,
0,
0,
0,
0,
0,
2,
0,
2,
2,
0,
0,
2,
2,
2,
2,
2,
0,
1,
2,
0,
0,
0,
2,
2,
0,
1,
0,
2,
0,
0,
2,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
3,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
2,
0,
0,
0,
0,
2,
0,
1,
2,
0,
0,
0,
0,
2,
2,
1,
0,
1,
0,
1,
0,
2,
2,
2,
1,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
2,
0,
1,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
2,
2,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
2,
0,
2,
2,
0,
0,
0,
0,
2,
2,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
2,
0,
0,
0,
0,
2,
2,
2,
2,
0,
0,
0,
3,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
1,
0,
0,
2,
0,
0,
0,
0,
1,
2,
0,
0,
0,
0,
0,
0,
2,
2,
1,
1,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
2,
0,
2,
2,
2,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
2,
2,
2,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
1,
0,
0,
0,
0,
2,
1,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
2,
0,
0,
2,
0,
0,
0,
0,
2,
2,
0,
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
2,
2,
1,
0,
0,
0,
0,
0,
0,
2,
0,
0,
2,
0,
2,
2,
2,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
2,
0,
0,
2,
0,
0,
2,
0,
2,
2,
0,
0,
0,
0,
2,
0,
2,
0,
0,
0,
0,
0,
2,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
3,
0,
0,
0,
2,
2,
0,
2,
2,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
2,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
2,
0,
0,
0,
0,
0,
0,
2,
2,
2,
2,
2,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
2,
1,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
2,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
2,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2,
2,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
1,
0,
2,
0,
0,
0,
0,
2,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
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,
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,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
2,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
1,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
1,
2,
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,
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,
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,
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,
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,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
];
exports.Latin7GreekModel = {
"charToOrderMap": exports.Latin7_CharToOrderMap,
"precedenceMatrix": exports.GreekLangModel,
"mTypicalPositiveRatio": 0.982851,
"keepEnglishLetter": false,
"charsetName": "ISO-8859-7"
};
exports.Win1253GreekModel = {
"charToOrderMap": exports.win1253_CharToOrderMap,
"precedenceMatrix": exports.GreekLangModel,
"mTypicalPositiveRatio": 0.982851,
"keepEnglishLetter": false,
"charsetName": "windows-1253"
};
}
});
// node_modules/jschardet/src/langthaimodel.js
var require_langthaimodel = __commonJS({
"node_modules/jschardet/src/langthaimodel.js"(exports) {
exports.TIS620CharToOrderMap = [
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
254,
255,
255,
254,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
252,
252,
252,
252,
252,
252,
252,
252,
252,
252,
253,
253,
253,
253,
253,
253,
253,
182,
106,
107,
100,
183,
184,
185,
101,
94,
186,
187,
108,
109,
110,
111,
188,
189,
190,
89,
95,
112,
113,
191,
192,
193,
194,
253,
253,
253,
253,
253,
253,
64,
72,
73,
114,
74,
115,
116,
102,
81,
201,
117,
90,
103,
78,
82,
96,
202,
91,
79,
84,
104,
105,
97,
98,
92,
203,
253,
253,
253,
253,
253,
209,
210,
211,
212,
213,
88,
214,
215,
216,
217,
218,
219,
220,
118,
221,
222,
223,
224,
99,
85,
83,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
5,
30,
237,
24,
238,
75,
8,
26,
52,
34,
51,
119,
47,
58,
57,
49,
53,
55,
43,
20,
19,
44,
14,
48,
3,
17,
25,
39,
62,
31,
54,
45,
9,
16,
2,
61,
15,
239,
12,
42,
46,
18,
21,
76,
4,
66,
63,
22,
10,
1,
36,
23,
13,
40,
27,
32,
35,
86,
240,
241,
242,
243,
244,
11,
28,
41,
29,
33,
245,
50,
37,
6,
7,
67,
77,
38,
93,
246,
247,
68,
56,
59,
65,
69,
60,
70,
80,
71,
87,
248,
249,
250,
251,
252,
253
];
exports.ThaiLangModel = [
0,
1,
3,
3,
3,
3,
0,
0,
3,
3,
0,
3,
3,
0,
3,
3,
3,
3,
3,
3,
3,
3,
0,
0,
3,
3,
3,
0,
3,
3,
3,
3,
0,
3,
3,
0,
0,
0,
1,
3,
0,
3,
3,
2,
3,
3,
0,
1,
2,
3,
3,
3,
3,
0,
2,
0,
2,
0,
0,
3,
2,
1,
2,
2,
3,
0,
3,
3,
2,
3,
0,
0,
3,
3,
0,
3,
3,
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
0,
3,
2,
3,
0,
2,
2,
2,
3,
0,
2,
3,
0,
0,
0,
0,
1,
0,
1,
2,
3,
1,
1,
3,
2,
2,
0,
1,
1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
1,
3,
3,
3,
2,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
2,
2,
2,
2,
2,
2,
3,
3,
2,
3,
2,
3,
3,
2,
2,
2,
3,
1,
2,
3,
0,
3,
3,
2,
2,
1,
2,
3,
3,
1,
2,
0,
1,
3,
0,
1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
1,
3,
3,
2,
2,
3,
3,
3,
3,
1,
2,
3,
3,
3,
3,
3,
2,
2,
2,
2,
3,
3,
2,
2,
3,
3,
2,
2,
3,
2,
3,
2,
2,
3,
3,
1,
2,
3,
1,
2,
2,
3,
3,
1,
0,
2,
1,
0,
0,
3,
1,
2,
1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
1,
0,
1,
3,
3,
3,
3,
3,
3,
2,
2,
3,
3,
3,
3,
2,
3,
2,
2,
3,
3,
2,
2,
3,
2,
2,
2,
2,
1,
1,
3,
1,
2,
1,
1,
3,
2,
1,
0,
2,
1,
0,
1,
0,
1,
1,
0,
1,
1,
0,
0,
1,
0,
1,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
2,
3,
2,
3,
3,
2,
2,
3,
2,
3,
3,
2,
3,
1,
1,
2,
3,
2,
2,
2,
3,
2,
2,
2,
2,
2,
1,
2,
1,
2,
2,
1,
1,
3,
3,
2,
1,
0,
1,
2,
2,
0,
1,
3,
0,
0,
0,
1,
1,
0,
0,
0,
0,
0,
2,
3,
0,
0,
2,
1,
1,
3,
3,
2,
3,
3,
2,
0,
0,
3,
3,
0,
3,
3,
0,
2,
2,
3,
1,
2,
2,
1,
1,
1,
0,
2,
2,
2,
0,
2,
2,
1,
1,
0,
2,
1,
0,
2,
0,
0,
2,
0,
1,
0,
0,
1,
0,
0,
0,
1,
1,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
3,
3,
2,
3,
3,
2,
0,
0,
3,
3,
0,
2,
3,
0,
2,
1,
2,
2,
2,
2,
1,
2,
0,
0,
2,
2,
2,
0,
2,
2,
1,
1,
0,
2,
1,
0,
2,
0,
0,
2,
0,
1,
1,
0,
1,
0,
0,
0,
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
2,
3,
2,
3,
2,
0,
2,
2,
1,
3,
2,
1,
3,
2,
1,
2,
3,
2,
2,
3,
0,
2,
3,
2,
2,
1,
2,
2,
2,
2,
1,
2,
2,
0,
0,
0,
0,
2,
0,
1,
2,
0,
1,
1,
1,
0,
1,
0,
3,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
3,
3,
2,
3,
3,
2,
3,
2,
2,
2,
3,
2,
2,
3,
2,
2,
1,
2,
3,
2,
2,
3,
1,
3,
2,
2,
2,
3,
2,
2,
2,
3,
3,
2,
1,
3,
0,
1,
1,
1,
0,
2,
1,
1,
1,
1,
1,
0,
1,
0,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
1,
0,
0,
3,
0,
3,
3,
3,
3,
3,
0,
0,
3,
0,
2,
2,
3,
3,
3,
3,
3,
0,
0,
0,
1,
1,
3,
0,
0,
0,
0,
2,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
2,
3,
0,
0,
0,
3,
0,
2,
0,
0,
0,
0,
0,
3,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
3,
3,
3,
3,
0,
0,
2,
3,
0,
0,
3,
0,
3,
3,
2,
3,
3,
3,
3,
3,
0,
0,
3,
3,
3,
0,
0,
0,
3,
3,
0,
0,
3,
0,
0,
0,
0,
2,
0,
0,
2,
1,
1,
3,
0,
0,
1,
0,
0,
2,
3,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
3,
3,
3,
3,
2,
3,
3,
3,
3,
3,
3,
3,
1,
2,
1,
3,
3,
2,
2,
1,
2,
2,
2,
3,
1,
1,
2,
0,
2,
1,
2,
1,
2,
2,
1,
0,
0,
0,
1,
1,
0,
1,
0,
1,
1,
0,
0,
0,
0,
0,
1,
1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
0,
2,
1,
2,
3,
3,
3,
0,
2,
0,
2,
2,
0,
2,
1,
3,
2,
2,
1,
2,
1,
0,
0,
2,
2,
1,
0,
2,
1,
2,
2,
0,
1,
1,
0,
0,
0,
0,
1,
0,
1,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
2,
1,
3,
3,
1,
1,
3,
0,
2,
3,
1,
1,
3,
2,
1,
1,
2,
0,
2,
2,
3,
2,
1,
1,
1,
1,
1,
2,
3,
0,
0,
1,
3,
1,
2,
1,
2,
0,
3,
0,
0,
0,
1,
0,
3,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
3,
3,
1,
1,
3,
2,
3,
3,
3,
1,
3,
2,
1,
3,
2,
1,
3,
2,
2,
2,
2,
1,
3,
3,
1,
2,
1,
3,
1,
2,
3,
0,
2,
1,
1,
3,
2,
2,
2,
1,
2,
1,
0,
0,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
3,
3,
2,
3,
2,
3,
3,
2,
3,
2,
3,
2,
3,
3,
2,
1,
0,
3,
2,
2,
2,
1,
2,
2,
2,
1,
2,
2,
1,
2,
1,
1,
2,
2,
2,
3,
0,
1,
3,
1,
1,
1,
1,
0,
1,
1,
0,
2,
1,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
2,
3,
2,
2,
1,
1,
3,
2,
3,
2,
3,
2,
0,
3,
2,
2,
1,
2,
0,
2,
2,
2,
1,
2,
2,
2,
2,
1,
3,
2,
1,
2,
2,
1,
0,
2,
0,
1,
0,
0,
1,
1,
0,
0,
0,
0,
0,
1,
1,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
1,
3,
3,
3,
3,
3,
2,
3,
1,
2,
3,
3,
2,
2,
3,
0,
1,
1,
2,
0,
3,
3,
2,
2,
3,
0,
1,
1,
3,
0,
0,
0,
0,
3,
1,
0,
3,
3,
0,
2,
0,
2,
1,
0,
0,
3,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
2,
3,
2,
3,
3,
0,
1,
3,
1,
1,
2,
1,
2,
1,
1,
3,
1,
1,
0,
2,
3,
1,
1,
1,
1,
1,
1,
1,
1,
3,
1,
1,
2,
2,
2,
2,
1,
1,
1,
0,
0,
2,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
3,
2,
2,
1,
1,
2,
1,
3,
3,
2,
3,
2,
2,
3,
2,
2,
3,
1,
2,
2,
1,
2,
0,
3,
2,
1,
2,
2,
2,
2,
2,
1,
3,
2,
1,
2,
2,
2,
1,
1,
1,
1,
0,
0,
1,
1,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
3,
3,
3,
3,
1,
3,
3,
0,
2,
1,
0,
3,
2,
0,
0,
3,
1,
0,
1,
1,
0,
1,
0,
0,
0,
0,
0,
1,
1,
0,
0,
1,
0,
3,
2,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
0,
2,
2,
2,
3,
0,
0,
1,
3,
0,
3,
2,
0,
3,
2,
2,
3,
3,
3,
3,
3,
1,
0,
2,
2,
2,
0,
2,
2,
1,
2,
0,
2,
3,
0,
0,
0,
0,
1,
0,
1,
0,
0,
1,
1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
3,
0,
2,
3,
1,
3,
3,
2,
3,
3,
0,
3,
3,
0,
3,
2,
2,
3,
2,
3,
3,
3,
0,
0,
2,
2,
3,
0,
1,
1,
1,
3,
0,
0,
3,
0,
0,
0,
2,
2,
0,
1,
3,
0,
1,
2,
2,
2,
3,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
1,
3,
2,
3,
3,
2,
0,
3,
3,
2,
2,
3,
1,
3,
2,
1,
3,
2,
0,
1,
2,
2,
0,
2,
3,
2,
1,
0,
3,
0,
0,
0,
0,
3,
0,
0,
2,
3,
1,
3,
0,
0,
3,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
1,
3,
2,
2,
2,
1,
2,
0,
1,
3,
1,
1,
3,
1,
3,
0,
0,
2,
1,
1,
1,
1,
2,
1,
1,
1,
0,
2,
1,
0,
1,
1,
2,
0,
0,
0,
3,
1,
1,
0,
0,
0,
0,
1,
0,
1,
0,
0,
1,
0,
1,
0,
0,
0,
0,
0,
3,
1,
0,
0,
0,
1,
0,
3,
3,
3,
3,
2,
2,
2,
2,
2,
1,
3,
1,
1,
1,
2,
0,
1,
1,
2,
1,
2,
1,
3,
2,
0,
0,
3,
1,
1,
1,
1,
1,
3,
1,
0,
2,
3,
0,
0,
0,
3,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
3,
0,
3,
3,
0,
2,
0,
0,
0,
0,
0,
0,
0,
3,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
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,
0,
0,
0,
0,
0,
2,
3,
1,
3,
0,
0,
1,
2,
0,
0,
2,
0,
3,
3,
2,
3,
3,
3,
2,
3,
0,
0,
2,
2,
2,
0,
0,
0,
2,
2,
0,
0,
1,
0,
0,
0,
0,
3,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
2,
3,
1,
3,
3,
0,
0,
1,
0,
3,
0,
0,
0,
0,
0,
0,
0,
3,
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,
0,
0,
0,
3,
3,
1,
2,
3,
1,
2,
3,
1,
0,
3,
0,
2,
2,
1,
0,
2,
1,
1,
2,
0,
1,
0,
0,
1,
1,
1,
1,
0,
1,
0,
0,
1,
0,
0,
0,
0,
1,
1,
0,
3,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
2,
1,
0,
1,
1,
1,
3,
1,
2,
2,
2,
2,
2,
2,
1,
1,
1,
1,
0,
3,
1,
0,
1,
3,
1,
1,
1,
1,
1,
1,
0,
2,
0,
1,
3,
1,
1,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
1,
3,
0,
2,
2,
1,
3,
3,
2,
3,
3,
0,
1,
1,
0,
2,
2,
1,
2,
1,
3,
3,
1,
0,
0,
3,
2,
0,
0,
0,
0,
2,
1,
0,
1,
0,
0,
0,
0,
1,
2,
0,
1,
1,
3,
1,
1,
2,
2,
1,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
0,
0,
1,
0,
0,
0,
3,
0,
0,
3,
0,
3,
1,
0,
1,
1,
1,
3,
2,
0,
0,
0,
3,
0,
0,
0,
0,
2,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
1,
3,
2,
1,
3,
3,
1,
2,
2,
0,
1,
2,
1,
0,
1,
2,
0,
0,
0,
0,
0,
3,
0,
0,
0,
3,
0,
0,
0,
0,
3,
0,
0,
1,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
0,
1,
2,
0,
3,
3,
3,
2,
2,
0,
1,
1,
0,
1,
3,
0,
0,
0,
2,
2,
0,
0,
0,
0,
3,
1,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
0,
2,
3,
1,
2,
0,
0,
2,
1,
0,
3,
1,
0,
1,
2,
0,
1,
1,
1,
1,
3,
0,
0,
3,
1,
1,
0,
2,
2,
1,
1,
0,
2,
0,
0,
0,
0,
0,
1,
0,
1,
0,
0,
1,
1,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
0,
0,
3,
1,
2,
0,
0,
2,
2,
0,
1,
2,
0,
1,
0,
1,
3,
1,
2,
1,
0,
0,
0,
2,
0,
3,
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
0,
1,
1,
2,
2,
0,
0,
0,
2,
0,
2,
1,
0,
1,
1,
0,
1,
1,
1,
2,
1,
0,
0,
1,
1,
1,
0,
2,
1,
1,
1,
0,
1,
1,
0,
0,
0,
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
0,
0,
2,
0,
1,
3,
1,
1,
1,
1,
0,
0,
0,
0,
3,
2,
0,
1,
0,
0,
0,
1,
2,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
3,
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,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
2,
3,
2,
2,
0,
0,
0,
1,
0,
0,
0,
0,
2,
3,
2,
1,
2,
2,
3,
0,
0,
0,
2,
3,
1,
0,
0,
0,
1,
1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
0,
1,
1,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
2,
2,
0,
1,
0,
0,
0,
0,
2,
0,
2,
0,
1,
0,
0,
0,
1,
1,
0,
0,
0,
2,
1,
0,
1,
0,
1,
1,
0,
0,
0,
1,
0,
2,
0,
0,
1,
0,
3,
0,
1,
0,
0,
0,
2,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
1,
0,
0,
1,
0,
0,
0,
0,
0,
1,
1,
2,
0,
0,
0,
0,
1,
0,
0,
1,
3,
1,
0,
0,
0,
0,
1,
1,
0,
0,
0,
1,
0,
0,
0,
0,
3,
0,
0,
0,
0,
0,
0,
3,
0,
0,
0,
0,
0,
0,
0,
3,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
1,
1,
1,
1,
2,
3,
0,
0,
2,
1,
1,
1,
1,
1,
0,
2,
1,
1,
0,
0,
0,
2,
1,
0,
1,
2,
1,
1,
0,
1,
2,
1,
0,
3,
0,
0,
0,
0,
3,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
3,
1,
0,
0,
0,
0,
0,
0,
0,
3,
0,
0,
0,
3,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
2,
0,
0,
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,
3,
3,
2,
0,
0,
0,
0,
0,
0,
1,
2,
1,
0,
1,
1,
0,
2,
0,
0,
1,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
1,
3,
0,
1,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
1,
2,
0,
0,
0,
0,
0,
3,
3,
0,
0,
1,
1,
2,
0,
0,
1,
2,
1,
0,
1,
1,
1,
0,
1,
1,
0,
0,
2,
1,
1,
0,
1,
0,
0,
1,
1,
1,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
2,
2,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
3,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
3,
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,
2,
3,
0,
0,
1,
1,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
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,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
0,
1,
2,
0,
1,
2,
0,
0,
1,
1,
0,
2,
0,
1,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
2,
0,
0,
0,
0,
1,
0,
0,
1,
0,
1,
1,
0,
3,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
1,
0,
1,
1,
0,
2,
1,
3,
0,
0,
0,
0,
1,
1,
0,
0,
0,
0,
0,
0,
0,
3,
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,
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,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
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,
2,
0,
1,
0,
1,
0,
0,
2,
0,
0,
2,
0,
0,
1,
1,
2,
0,
0,
1,
1,
0,
0,
0,
1,
0,
0,
0,
1,
1,
0,
0,
0,
1,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
3,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
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,
0,
0,
0,
0,
0,
0,
3,
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,
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,
0,
0,
0,
2,
0,
0,
1,
1,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
1,
0,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
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,
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,
0,
0,
0,
1,
0,
0,
1,
3,
0,
0,
0,
2,
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,
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,
0,
0,
0,
2,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2,
0,
0,
0,
0,
2,
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,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
0,
0,
2,
1,
0,
0,
1,
0,
0,
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,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
];
exports.TIS620ThaiModel = {
"charToOrderMap": exports.TIS620CharToOrderMap,
"precedenceMatrix": exports.ThaiLangModel,
"mTypicalPositiveRatio": 0.926386,
"keepEnglishLetter": false,
"charsetName": "TIS-620"
};
}
});
// node_modules/jschardet/src/langhungarianmodel.js
var require_langhungarianmodel = __commonJS({
"node_modules/jschardet/src/langhungarianmodel.js"(exports) {
exports.Latin2_HungarianCharToOrderMap = [
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
254,
255,
255,
254,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
252,
252,
252,
252,
252,
252,
252,
252,
252,
252,
253,
253,
253,
253,
253,
253,
253,
28,
40,
54,
45,
32,
50,
49,
38,
39,
53,
36,
41,
34,
35,
47,
46,
71,
43,
33,
37,
57,
48,
64,
68,
55,
52,
253,
253,
253,
253,
253,
253,
2,
18,
26,
17,
1,
27,
12,
20,
9,
22,
7,
6,
13,
4,
8,
23,
67,
10,
5,
3,
21,
19,
65,
62,
16,
11,
253,
253,
253,
253,
253,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
75,
198,
199,
200,
201,
202,
203,
204,
205,
79,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
51,
81,
222,
78,
223,
224,
225,
226,
44,
227,
228,
229,
61,
230,
231,
232,
233,
234,
58,
235,
66,
59,
236,
237,
238,
60,
69,
63,
239,
240,
241,
82,
14,
74,
242,
70,
80,
243,
72,
244,
15,
83,
77,
84,
30,
76,
85,
245,
246,
247,
25,
73,
42,
24,
248,
249,
250,
31,
56,
29,
251,
252,
253
];
exports.win1250HungarianCharToOrderMap = [
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
254,
255,
255,
254,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
252,
252,
252,
252,
252,
252,
252,
252,
252,
252,
253,
253,
253,
253,
253,
253,
253,
28,
40,
54,
45,
32,
50,
49,
38,
39,
53,
36,
41,
34,
35,
47,
46,
72,
43,
33,
37,
57,
48,
64,
68,
55,
52,
253,
253,
253,
253,
253,
253,
2,
18,
26,
17,
1,
27,
12,
20,
9,
22,
7,
6,
13,
4,
8,
23,
67,
10,
5,
3,
21,
19,
65,
62,
16,
11,
253,
253,
253,
253,
253,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
78,
181,
69,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
76,
198,
199,
200,
201,
202,
203,
204,
205,
81,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
51,
83,
222,
80,
223,
224,
225,
226,
44,
227,
228,
229,
61,
230,
231,
232,
233,
234,
58,
235,
66,
59,
236,
237,
238,
60,
70,
63,
239,
240,
241,
84,
14,
75,
242,
71,
82,
243,
73,
244,
15,
85,
79,
86,
30,
77,
87,
245,
246,
247,
25,
74,
42,
24,
248,
249,
250,
31,
56,
29,
251,
252,
253
];
exports.HungarianLangModel = [
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
1,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
3,
3,
3,
3,
3,
3,
3,
3,
2,
2,
3,
3,
1,
1,
2,
2,
2,
2,
2,
1,
2,
3,
2,
2,
3,
3,
3,
3,
3,
2,
3,
3,
3,
3,
3,
3,
1,
2,
3,
3,
3,
3,
2,
3,
3,
1,
1,
3,
3,
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,
0,
0,
0,
0,
2,
0,
3,
2,
1,
3,
3,
3,
3,
3,
2,
3,
3,
3,
3,
3,
1,
1,
2,
3,
3,
3,
3,
3,
3,
3,
1,
1,
3,
2,
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,
0,
0,
0,
0,
1,
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
1,
1,
2,
3,
3,
3,
1,
3,
3,
3,
3,
3,
1,
3,
3,
2,
2,
0,
3,
2,
3,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
3,
3,
2,
3,
3,
3,
2,
3,
3,
2,
3,
3,
3,
3,
3,
2,
3,
3,
2,
2,
3,
2,
3,
2,
0,
3,
2,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
1,
0,
3,
3,
3,
3,
3,
3,
2,
3,
3,
3,
3,
3,
2,
3,
3,
3,
1,
2,
3,
2,
2,
3,
1,
2,
3,
3,
2,
2,
0,
3,
3,
3,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
2,
3,
3,
3,
3,
3,
3,
2,
3,
3,
3,
3,
2,
3,
3,
3,
3,
0,
2,
3,
2,
0,
0,
0,
1,
1,
0,
0,
0,
0,
0,
3,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
1,
1,
1,
3,
3,
2,
1,
3,
2,
2,
3,
2,
1,
3,
2,
2,
1,
0,
3,
3,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
3,
2,
2,
3,
3,
3,
3,
3,
1,
2,
3,
3,
3,
3,
1,
2,
1,
3,
3,
3,
3,
2,
2,
3,
1,
1,
3,
2,
0,
1,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
3,
3,
3,
3,
3,
3,
3,
3,
2,
2,
3,
3,
3,
3,
3,
2,
1,
3,
3,
3,
3,
3,
2,
2,
1,
3,
3,
3,
0,
1,
1,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
1,
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
3,
3,
3,
2,
3,
3,
2,
3,
3,
3,
2,
0,
3,
2,
3,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
1,
0,
3,
3,
3,
3,
3,
3,
2,
3,
3,
3,
2,
3,
2,
3,
3,
3,
1,
3,
2,
2,
2,
3,
1,
1,
3,
3,
1,
1,
0,
3,
3,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
3,
3,
3,
2,
3,
3,
3,
2,
3,
2,
3,
3,
3,
2,
3,
3,
3,
3,
3,
1,
2,
3,
2,
2,
0,
2,
2,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
2,
2,
2,
3,
1,
3,
3,
2,
2,
1,
3,
3,
3,
1,
1,
3,
1,
2,
3,
2,
3,
2,
2,
2,
1,
0,
2,
2,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
3,
1,
1,
3,
3,
3,
3,
3,
1,
2,
3,
3,
3,
3,
1,
2,
1,
3,
3,
3,
2,
2,
3,
2,
1,
0,
3,
2,
0,
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,
0,
0,
0,
0,
0,
0,
0,
3,
1,
1,
3,
3,
3,
3,
3,
1,
2,
3,
3,
3,
3,
1,
1,
0,
3,
3,
3,
3,
0,
2,
3,
0,
0,
2,
1,
0,
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,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
3,
3,
2,
2,
3,
3,
2,
2,
2,
2,
3,
3,
0,
1,
2,
3,
2,
3,
2,
2,
3,
2,
1,
2,
0,
2,
2,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
3,
3,
1,
2,
3,
3,
3,
2,
1,
2,
3,
3,
2,
2,
2,
3,
2,
3,
3,
1,
3,
3,
1,
1,
0,
2,
3,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
1,
2,
2,
2,
2,
3,
3,
3,
1,
1,
1,
3,
3,
1,
1,
3,
1,
1,
3,
2,
1,
2,
3,
1,
1,
0,
2,
2,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
2,
1,
2,
1,
1,
3,
3,
1,
1,
1,
1,
3,
3,
1,
1,
2,
2,
1,
2,
1,
1,
2,
2,
1,
1,
0,
2,
2,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
1,
1,
2,
1,
1,
3,
3,
1,
0,
1,
1,
3,
3,
2,
0,
1,
1,
2,
3,
1,
0,
2,
2,
1,
0,
0,
1,
3,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
3,
2,
1,
3,
3,
3,
3,
3,
1,
2,
3,
2,
3,
3,
2,
1,
1,
3,
2,
3,
2,
1,
2,
2,
0,
1,
2,
1,
0,
0,
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,
0,
0,
0,
0,
1,
0,
3,
3,
3,
3,
2,
2,
2,
2,
3,
1,
2,
2,
1,
1,
3,
3,
0,
3,
2,
1,
2,
3,
2,
1,
3,
3,
1,
1,
0,
2,
1,
3,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
2,
2,
2,
3,
2,
3,
3,
3,
2,
1,
1,
3,
3,
1,
1,
1,
2,
2,
3,
2,
3,
2,
2,
2,
1,
0,
2,
2,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
3,
3,
3,
3,
3,
0,
0,
3,
3,
2,
3,
0,
0,
0,
2,
3,
3,
1,
0,
1,
2,
0,
0,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
1,
2,
3,
3,
3,
3,
3,
1,
2,
3,
3,
2,
2,
1,
1,
0,
3,
3,
2,
2,
1,
2,
2,
1,
0,
2,
2,
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,
0,
0,
0,
0,
0,
0,
3,
3,
2,
2,
1,
3,
1,
2,
3,
3,
2,
2,
1,
1,
2,
2,
1,
1,
1,
1,
3,
2,
1,
1,
1,
1,
2,
1,
0,
1,
2,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
3,
3,
1,
1,
1,
1,
1,
3,
3,
3,
0,
1,
1,
3,
3,
1,
1,
1,
1,
1,
2,
2,
0,
3,
1,
1,
2,
0,
2,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
3,
1,
0,
1,
2,
1,
2,
2,
0,
1,
2,
3,
1,
2,
0,
0,
0,
2,
1,
1,
1,
1,
1,
2,
0,
0,
1,
1,
0,
0,
0,
0,
1,
2,
1,
2,
2,
2,
1,
2,
1,
2,
0,
2,
0,
2,
2,
1,
1,
2,
1,
1,
2,
1,
1,
1,
0,
1,
0,
0,
0,
1,
1,
0,
1,
1,
1,
2,
3,
2,
3,
3,
0,
1,
2,
2,
3,
1,
0,
1,
0,
2,
1,
2,
2,
0,
1,
1,
0,
0,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
3,
3,
2,
2,
1,
0,
0,
3,
2,
3,
2,
0,
0,
0,
1,
1,
3,
0,
0,
1,
1,
0,
0,
2,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
1,
1,
2,
2,
3,
3,
1,
0,
1,
3,
2,
3,
1,
1,
1,
0,
1,
1,
1,
1,
1,
3,
1,
0,
0,
2,
2,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
1,
1,
1,
2,
2,
2,
1,
0,
1,
2,
3,
3,
2,
0,
0,
0,
2,
1,
1,
1,
2,
1,
1,
1,
0,
1,
1,
1,
0,
0,
0,
1,
2,
2,
2,
2,
2,
1,
1,
1,
2,
0,
2,
1,
1,
1,
1,
1,
2,
1,
1,
1,
1,
1,
1,
0,
1,
1,
1,
0,
0,
1,
1,
3,
2,
2,
1,
0,
0,
1,
1,
2,
2,
0,
3,
0,
1,
2,
1,
1,
0,
0,
1,
1,
1,
0,
1,
1,
1,
1,
0,
2,
1,
1,
1,
2,
2,
1,
1,
1,
2,
1,
2,
1,
1,
1,
1,
1,
1,
1,
2,
1,
1,
1,
2,
3,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
1,
2,
3,
3,
0,
1,
0,
0,
0,
3,
3,
1,
0,
0,
1,
2,
2,
1,
0,
0,
0,
0,
2,
0,
0,
1,
1,
1,
0,
2,
1,
1,
1,
2,
1,
1,
1,
1,
1,
1,
2,
1,
1,
0,
1,
1,
0,
1,
1,
1,
0,
1,
2,
1,
1,
0,
1,
1,
1,
1,
1,
1,
1,
0,
1,
2,
3,
3,
0,
1,
0,
0,
0,
2,
2,
0,
0,
0,
0,
1,
2,
2,
0,
0,
0,
0,
1,
0,
0,
1,
1,
0,
0,
2,
0,
1,
0,
2,
1,
1,
1,
1,
2,
1,
1,
1,
1,
1,
1,
1,
2,
1,
1,
1,
1,
1,
1,
1,
1,
1,
2,
0,
1,
1,
1,
1,
1,
0,
1,
3,
2,
2,
0,
1,
0,
1,
0,
2,
3,
2,
0,
0,
1,
2,
2,
1,
0,
0,
1,
1,
1,
0,
0,
2,
1,
0,
1,
2,
2,
1,
1,
2,
1,
1,
1,
1,
1,
1,
2,
1,
1,
1,
1,
1,
1,
0,
2,
1,
0,
1,
1,
0,
1,
1,
1,
0,
1,
1,
2,
1,
1,
0,
1,
2,
2,
2,
0,
0,
1,
0,
0,
2,
2,
1,
1,
0,
0,
2,
1,
1,
0,
0,
0,
1,
2,
0,
0,
2,
1,
0,
0,
2,
1,
1,
1,
2,
1,
1,
1,
1,
2,
1,
2,
1,
1,
1,
2,
2,
1,
1,
2,
1,
1,
1,
2,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
1,
1,
2,
3,
0,
0,
0,
1,
0,
3,
2,
1,
0,
0,
1,
2,
1,
1,
0,
0,
0,
0,
2,
1,
0,
1,
1,
0,
0,
2,
1,
2,
1,
1,
1,
0,
0,
0,
1,
0,
1,
1,
1,
1,
1,
2,
0,
0,
1,
0,
0,
0,
2,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1,
0,
1,
3,
0,
0,
2,
1,
2,
2,
1,
0,
0,
2,
1,
2,
2,
0,
0,
0,
2,
1,
1,
1,
0,
1,
1,
0,
0,
1,
1,
2,
0,
0,
0,
1,
2,
1,
2,
2,
1,
1,
2,
1,
2,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
2,
1,
1,
0,
0,
1,
1,
1,
1,
0,
0,
1,
1,
3,
2,
0,
0,
0,
1,
0,
2,
2,
2,
0,
0,
0,
2,
2,
1,
0,
0,
0,
0,
3,
1,
1,
1,
1,
0,
0,
2,
1,
1,
1,
2,
1,
0,
1,
1,
1,
0,
1,
1,
1,
1,
1,
1,
1,
0,
2,
1,
0,
0,
1,
0,
1,
1,
0,
1,
1,
1,
1,
1,
1,
0,
1,
2,
3,
2,
0,
0,
0,
1,
0,
2,
2,
0,
0,
0,
0,
2,
1,
1,
0,
0,
0,
0,
2,
1,
0,
1,
1,
0,
0,
2,
1,
1,
0,
2,
1,
1,
1,
1,
2,
1,
2,
1,
2,
0,
1,
1,
1,
0,
2,
1,
1,
1,
2,
1,
1,
1,
1,
0,
1,
1,
1,
1,
1,
0,
1,
3,
1,
1,
2,
2,
2,
3,
2,
1,
1,
2,
2,
1,
1,
0,
1,
0,
2,
2,
1,
1,
1,
1,
1,
0,
0,
1,
1,
0,
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,
0,
0,
0,
0,
0,
0,
0,
2,
2,
2,
0,
0,
0,
0,
0,
2,
2,
0,
0,
0,
0,
2,
2,
1,
0,
0,
0,
1,
1,
0,
0,
1,
2,
0,
0,
2,
1,
1,
1,
2,
2,
1,
1,
1,
2,
1,
2,
1,
1,
0,
1,
1,
1,
1,
2,
1,
1,
1,
2,
1,
1,
1,
1,
0,
1,
2,
1,
1,
1,
0,
1,
1,
0,
0,
1,
2,
3,
2,
1,
0,
0,
2,
0,
1,
1,
0,
0,
0,
1,
1,
1,
1,
0,
1,
1,
0,
0,
1,
0,
0,
0,
0,
0,
1,
2,
1,
2,
1,
2,
1,
1,
1,
2,
0,
2,
1,
1,
1,
0,
1,
2,
0,
0,
1,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
3,
2,
0,
0,
0,
0,
0,
1,
1,
2,
1,
0,
0,
1,
1,
1,
0,
0,
0,
0,
2,
0,
0,
1,
1,
0,
0,
2,
1,
1,
1,
2,
1,
1,
1,
1,
1,
1,
2,
1,
0,
1,
1,
1,
1,
0,
2,
1,
1,
1,
1,
1,
1,
0,
1,
0,
1,
1,
1,
1,
1,
0,
1,
1,
2,
2,
0,
1,
1,
1,
0,
2,
2,
2,
0,
0,
0,
3,
2,
1,
0,
0,
0,
1,
1,
0,
0,
1,
1,
0,
1,
1,
1,
0,
0,
1,
1,
0,
1,
1,
1,
1,
1,
1,
1,
1,
2,
1,
1,
1,
1,
1,
1,
1,
2,
1,
1,
1,
0,
0,
1,
1,
1,
0,
1,
0,
1,
2,
1,
0,
2,
1,
1,
2,
2,
1,
1,
2,
1,
1,
1,
0,
0,
0,
1,
1,
0,
1,
1,
1,
1,
0,
0,
1,
1,
1,
0,
0,
0,
1,
2,
2,
2,
2,
2,
1,
1,
1,
2,
0,
2,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
1,
1,
0,
0,
0,
1,
0,
1,
2,
3,
0,
0,
0,
1,
0,
2,
2,
0,
0,
0,
0,
2,
2,
0,
0,
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
2,
0,
1,
0,
2,
1,
1,
1,
1,
1,
0,
2,
0,
0,
0,
1,
2,
1,
1,
1,
1,
0,
1,
2,
0,
1,
0,
1,
0,
1,
1,
1,
0,
1,
0,
1,
2,
2,
2,
0,
0,
0,
1,
0,
2,
1,
2,
0,
0,
0,
1,
1,
2,
0,
0,
0,
0,
1,
0,
0,
1,
1,
0,
0,
2,
1,
0,
1,
2,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
2,
0,
1,
1,
1,
1,
1,
0,
1,
1,
2,
2,
0,
0,
0,
1,
0,
2,
2,
2,
0,
0,
0,
1,
1,
0,
0,
0,
0,
0,
1,
1,
0,
2,
0,
0,
1,
1,
1,
0,
1,
1,
0,
1,
1,
1,
1,
1,
1,
0,
1,
1,
1,
1,
0,
0,
1,
0,
0,
1,
1,
0,
1,
0,
1,
1,
1,
1,
1,
0,
0,
0,
1,
1,
0,
0,
1,
0,
1,
2,
1,
0,
0,
1,
1,
1,
2,
0,
0,
0,
1,
1,
0,
1,
0,
1,
1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
2,
1,
2,
1,
1,
1,
1,
1,
2,
0,
2,
0,
1,
1,
0,
1,
2,
1,
0,
1,
1,
1,
0,
0,
0,
0,
0,
0,
1,
0,
0,
2,
1,
1,
0,
1,
2,
0,
0,
1,
1,
1,
0,
0,
0,
1,
1,
0,
0,
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
2,
1,
0,
1,
2,
2,
1,
1,
1,
1,
1,
2,
1,
1,
0,
1,
1,
1,
1,
2,
1,
1,
1,
2,
1,
1,
0,
1,
0,
1,
1,
1,
1,
1,
0,
1,
1,
2,
2,
0,
0,
0,
0,
0,
1,
1,
0,
0,
0,
0,
2,
1,
0,
0,
0,
0,
0,
2,
0,
0,
2,
2,
0,
0,
2,
0,
0,
1,
2,
1,
1,
1,
1,
1,
1,
1,
0,
1,
1,
0,
1,
1,
0,
1,
0,
0,
0,
1,
1,
1,
1,
0,
0,
1,
1,
1,
1,
0,
0,
1,
1,
1,
2,
0,
0,
3,
1,
0,
2,
1,
1,
1,
0,
0,
1,
1,
1,
0,
0,
0,
1,
1,
0,
0,
0,
1,
0,
0,
1,
0,
1,
0,
1,
2,
1,
0,
1,
1,
1,
2,
1,
1,
0,
1,
1,
1,
1,
1,
0,
0,
0,
1,
1,
1,
1,
1,
0,
1,
0,
0,
0,
1,
0,
0,
2,
1,
1,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
0,
0,
1,
0,
0,
0,
0,
2,
0,
0,
0,
2,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
2,
1,
1,
0,
0,
1,
1,
1,
1,
1,
0,
1,
2,
1,
1,
1,
2,
1,
1,
1,
0,
1,
1,
2,
1,
0,
0,
0,
0,
1,
1,
1,
1,
0,
1,
0,
0,
0,
0,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
0,
1,
1,
1,
1,
1,
0,
0,
1,
1,
2,
1,
0,
0,
0,
1,
1,
0,
0,
0,
1,
1,
0,
0,
1,
0,
1,
0,
0,
0,
1,
2,
1,
1,
1,
1,
1,
1,
1,
1,
0,
1,
0,
1,
1,
1,
1,
1,
1,
0,
1,
1,
1,
0,
0,
0,
0,
0,
0,
1,
0,
0,
2,
0,
0,
0,
1,
1,
1,
1,
0,
0,
1,
1,
0,
0,
0,
0,
0,
1,
1,
1,
2,
0,
0,
1,
0,
0,
1,
0,
1,
0,
0,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1,
2,
0,
1,
1,
1,
1,
0,
1,
1,
1,
0,
1,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
1,
1,
1,
1,
1,
0,
0,
2,
1,
0,
1,
0,
0,
0,
1,
0,
1,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
1,
1,
1,
1,
1,
1,
0,
1,
1,
0,
1,
0,
1,
1,
0,
1,
1,
0,
0,
1,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
1,
1,
1,
0,
0,
0,
0,
1,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
1,
1,
1,
0,
0,
1,
1,
0,
1,
0,
1,
0,
0,
1,
1,
1,
0,
1,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
1,
1,
2,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
1,
0,
1,
0,
0,
1,
1,
0,
1,
0,
1,
1,
0,
1,
1,
1,
0,
1,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
0,
1,
1,
1,
0,
0,
1,
0,
0,
1,
0,
1,
0,
1,
1,
1,
0,
0,
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,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
1,
1,
1,
1,
0,
0,
0,
1,
1,
1,
0,
0,
0,
0,
1,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
1,
1,
1,
1,
0,
1,
1,
0,
1,
0,
1,
0,
0,
1,
1,
0,
0,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
];
exports.Latin2HungarianModel = {
"charToOrderMap": exports.Latin2_HungarianCharToOrderMap,
"precedenceMatrix": exports.HungarianLangModel,
"mTypicalPositiveRatio": 0.947368,
"keepEnglishLetter": true,
"charsetName": "ISO-8859-2"
};
exports.Win1250HungarianModel = {
"charToOrderMap": exports.win1250HungarianCharToOrderMap,
"precedenceMatrix": exports.HungarianLangModel,
"mTypicalPositiveRatio": 0.947368,
"keepEnglishLetter": true,
"charsetName": "windows-1250"
};
}
});
// node_modules/jschardet/src/langbulgarianmodel.js
var require_langbulgarianmodel = __commonJS({
"node_modules/jschardet/src/langbulgarianmodel.js"(exports) {
exports.Latin5_BulgarianCharToOrderMap = [
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
254,
255,
255,
254,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
252,
252,
252,
252,
252,
252,
252,
252,
252,
252,
253,
253,
253,
253,
253,
253,
253,
77,
90,
99,
100,
72,
109,
107,
101,
79,
185,
81,
102,
76,
94,
82,
110,
186,
108,
91,
74,
119,
84,
96,
111,
187,
115,
253,
253,
253,
253,
253,
253,
65,
69,
70,
66,
63,
68,
112,
103,
92,
194,
104,
95,
86,
87,
71,
116,
195,
85,
93,
97,
113,
196,
197,
198,
199,
200,
253,
253,
253,
253,
253,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
81,
226,
227,
228,
229,
230,
105,
231,
232,
233,
234,
235,
236,
45,
237,
238,
31,
32,
35,
43,
37,
44,
55,
47,
40,
59,
33,
46,
38,
36,
41,
30,
39,
28,
34,
51,
48,
49,
53,
50,
54,
57,
61,
239,
67,
240,
60,
56,
1,
18,
9,
20,
11,
3,
23,
15,
2,
26,
12,
10,
14,
6,
4,
13,
7,
8,
5,
19,
29,
25,
22,
21,
27,
24,
17,
75,
52,
241,
42,
16,
62,
242,
243,
244,
58,
245,
98,
246,
247,
248,
249,
250,
251,
91,
252,
253
];
exports.win1251BulgarianCharToOrderMap = [
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
254,
255,
255,
254,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
255,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
253,
252,
252,
252,
252,
252,
252,
252,
252,
252,
252,
253,
253,
253,
253,
253,
253,
253,
77,
90,
99,
100,
72,
109,
107,
101,
79,
185,
81,
102,
76,
94,
82,
110,
186,
108,
91,
74,
119,
84,
96,
111,
187,
115,
253,
253,
253,
253,
253,
253,
65,
69,
70,
66,
63,
68,
112,
103,
92,
194,
104,
95,
86,
87,
71,
116,
195,
85,
93,
97,
113,
196,
197,
198,
199,
200,
253,
253,
253,
253,
253,
206,
207,
208,
209,
210,
211,
212,
213,
120,
214,
215,
216,
217,
218,
219,
220,
221,
78,
64,
83,
121,
98,
117,
105,
222,
223,
224,
225,
226,
227,
228,
229,
88,
230,
231,
232,
233,
122,
89,
106,
234,
235,
236,
237,
238,
45,
239,
240,
73,
80,
118,
114,
241,
242,
243,
244,
245,
62,
58,
246,
247,
248,
249,
250,
31,
32,
35,
43,
37,
44,
55,
47,
40,
59,
33,
46,
38,
36,
41,
30,
39,
28,
34,
51,
48,
49,
53,
50,
54,
57,
61,
251,
67,
252,
60,
56,
1,
18,
9,
20,
11,
3,
23,
15,
2,
26,
12,
10,
14,
6,
4,
13,
7,
8,
5,
19,
29,
25,
22,
21,
27,
24,
17,
75,
52,
253,
42,
16
];
exports.BulgarianLangModel = [
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
3,
3,
3,
3,
3,
3,
3,
3,
2,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
0,
3,
3,
3,
2,
2,
3,
2,
2,
1,
2,
2,
3,
1,
3,
3,
2,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
0,
3,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
3,
2,
3,
3,
3,
3,
3,
3,
3,
3,
0,
3,
1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
0,
1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
3,
2,
2,
2,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
1,
3,
2,
3,
3,
3,
3,
3,
3,
3,
3,
0,
3,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
2,
3,
3,
2,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
1,
3,
2,
3,
3,
3,
3,
3,
3,
3,
3,
0,
3,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
3,
2,
2,
1,
3,
3,
3,
3,
2,
2,
2,
1,
1,
2,
0,
1,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
3,
3,
3,
3,
3,
3,
3,
2,
3,
2,
2,
3,
3,
1,
1,
2,
3,
3,
2,
3,
3,
3,
3,
2,
1,
2,
0,
2,
0,
3,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
3,
3,
3,
3,
3,
3,
3,
1,
3,
3,
3,
3,
3,
2,
3,
2,
3,
3,
3,
3,
3,
2,
3,
3,
1,
3,
0,
3,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
3,
3,
3,
3,
3,
3,
3,
3,
1,
3,
3,
2,
3,
3,
3,
1,
3,
3,
2,
3,
2,
2,
2,
0,
0,
2,
0,
2,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
3,
3,
3,
3,
3,
3,
3,
3,
3,
0,
3,
3,
3,
2,
2,
3,
3,
3,
1,
2,
2,
3,
2,
1,
1,
2,
0,
2,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
1,
0,
0,
1,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
3,
3,
3,
3,
3,
3,
3,
2,
3,
3,
1,
2,
3,
2,
2,
2,
3,
3,
3,
3,
3,
2,
2,
3,
1,
2,
0,
2,
1,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
0,
0,
1,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
3,
3,
3,
3,
3,
1,
3,
3,
3,
3,
3,
2,
3,
3,
3,
2,
3,
3,
2,
3,
2,
2,
2,
3,
1,
2,
0,
1,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
1,
1,
1,
2,
2,
1,
3,
1,
3,
2,
2,
3,
0,
0,
1,
0,
1,
0,
1,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
3,
3,
3,
3,
3,
2,
2,
3,
2,
2,
3,
1,
2,
1,
1,
1,
2,
3,
1,
3,
1,
2,
2,
0,
1,
1,
1,
1,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
3,
3,
3,
3,
3,
1,
3,
2,
2,
3,
3,
1,
2,
3,
1,
1,
3,
3,
3,
3,
1,
2,
2,
1,
1,
1,
0,
2,
0,
2,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
1,
2,
2,
3,
3,
3,
2,
2,
1,
1,
2,
0,
2,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
3,
0,
1,
2,
1,
3,
3,
2,
3,
3,
3,
3,
3,
2,
3,
2,
1,
0,
3,
1,
2,
1,
2,
1,
2,
3,
2,
1,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
1,
2,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
0,
0,
3,
1,
3,
3,
2,
3,
3,
2,
2,
2,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
3,
3,
3,
3,
0,
3,
3,
3,
3,
3,
2,
1,
1,
2,
1,
3,
3,
0,
3,
1,
1,
1,
1,
3,
2,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
3,
3,
2,
2,
2,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
1,
1,
3,
1,
3,
3,
2,
3,
2,
2,
2,
3,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
3,
2,
3,
3,
2,
2,
3,
2,
1,
1,
1,
1,
1,
3,
1,
3,
1,
1,
0,
0,
0,
1,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
3,
2,
3,
2,
0,
3,
2,
0,
3,
0,
2,
0,
0,
2,
1,
3,
1,
0,
0,
1,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
3,
3,
3,
3,
2,
1,
1,
1,
1,
2,
1,
1,
2,
1,
1,
1,
2,
2,
1,
2,
1,
1,
1,
0,
1,
1,
0,
1,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
3,
3,
3,
3,
2,
1,
3,
1,
1,
2,
1,
3,
2,
1,
1,
0,
1,
2,
3,
2,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
3,
3,
3,
3,
2,
2,
1,
0,
1,
0,
0,
1,
0,
0,
0,
2,
1,
0,
3,
0,
0,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
3,
3,
3,
2,
3,
2,
3,
3,
1,
3,
2,
1,
1,
1,
2,
1,
1,
2,
1,
3,
0,
1,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
1,
1,
2,
2,
3,
3,
2,
3,
2,
2,
2,
3,
1,
2,
2,
1,
1,
2,
1,
1,
2,
2,
0,
1,
1,
0,
1,
0,
2,
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,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
2,
1,
3,
1,
0,
2,
2,
1,
3,
2,
1,
0,
0,
2,
0,
2,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
3,
3,
3,
3,
3,
3,
1,
2,
0,
2,
3,
1,
2,
3,
2,
0,
1,
3,
1,
2,
1,
1,
1,
0,
0,
1,
0,
0,
2,
2,
2,
3,
2,
2,
2,
2,
1,
2,
1,
1,
2,
2,
1,
1,
2,
0,
1,
1,
1,
0,
0,
1,
1,
0,
0,
1,
1,
0,
0,
0,
1,
1,
0,
1,
3,
3,
3,
3,
3,
2,
1,
2,
2,
1,
2,
0,
2,
0,
1,
0,
1,
2,
1,
2,
1,
1,
0,
0,
0,
1,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
3,
3,
2,
3,
3,
1,
1,
3,
1,
0,
3,
2,
1,
0,
0,
0,
1,
2,
0,
2,
0,
1,
0,
0,
0,
1,
0,
1,
2,
1,
2,
2,
1,
1,
1,
1,
1,
1,
1,
2,
2,
2,
1,
1,
1,
1,
1,
1,
1,
0,
1,
2,
1,
1,
1,
0,
0,
0,
0,
0,
1,
1,
0,
0,
3,
1,
0,
1,
0,
2,
3,
2,
2,
2,
3,
2,
2,
2,
2,
2,
1,
0,
2,
1,
2,
1,
1,
1,
0,
1,
2,
1,
2,
2,
2,
1,
1,
1,
2,
2,
2,
2,
1,
2,
1,
1,
0,
1,
2,
1,
2,
2,
2,
1,
1,
1,
0,
1,
1,
1,
1,
2,
0,
1,
0,
0,
0,
0,
2,
3,
2,
3,
3,
0,
0,
2,
1,
0,
2,
1,
0,
0,
0,
0,
2,
3,
0,
2,
0,
0,
0,
0,
0,
1,
0,
0,
2,
0,
1,
2,
2,
1,
2,
1,
2,
2,
1,
1,
1,
2,
1,
1,
1,
0,
1,
2,
2,
1,
1,
1,
1,
1,
0,
1,
1,
1,
0,
0,
1,
2,
0,
0,
3,
3,
2,
2,
3,
0,
2,
3,
1,
1,
2,
0,
0,
0,
1,
0,
0,
2,
0,
2,
0,
0,
0,
1,
0,
1,
0,
1,
2,
0,
2,
2,
1,
1,
1,
1,
2,
1,
0,
1,
2,
2,
2,
1,
1,
1,
1,
1,
1,
1,
0,
1,
1,
1,
0,
0,
0,
0,
0,
0,
1,
1,
0,
0,
2,
3,
2,
3,
3,
0,
0,
3,
0,
1,
1,
0,
1,
0,
0,
0,
2,
2,
1,
2,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
1,
2,
2,
2,
1,
1,
1,
1,
1,
2,
2,
2,
1,
0,
2,
0,
1,
0,
1,
0,
0,
1,
0,
1,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
3,
3,
3,
3,
2,
2,
2,
2,
2,
0,
2,
1,
1,
1,
1,
2,
1,
2,
1,
1,
0,
2,
0,
1,
0,
1,
0,
0,
2,
0,
1,
2,
1,
1,
1,
1,
1,
1,
1,
2,
2,
1,
1,
0,
2,
0,
1,
0,
2,
0,
0,
1,
1,
1,
0,
0,
2,
0,
0,
0,
1,
1,
0,
0,
2,
3,
3,
3,
3,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
1,
1,
0,
0,
0,
0,
0,
0,
1,
2,
0,
1,
2,
2,
2,
2,
1,
1,
2,
1,
1,
2,
2,
2,
1,
2,
0,
1,
1,
1,
1,
1,
1,
0,
1,
1,
1,
1,
0,
0,
1,
1,
1,
0,
0,
2,
3,
3,
3,
3,
0,
2,
2,
0,
2,
1,
0,
0,
0,
1,
1,
1,
2,
0,
2,
0,
0,
0,
3,
0,
0,
0,
0,
2,
0,
2,
2,
1,
1,
1,
2,
1,
2,
1,
1,
2,
2,
2,
1,
2,
0,
1,
1,
1,
0,
1,
1,
1,
1,
0,
2,
1,
0,
0,
0,
1,
1,
0,
0,
2,
3,
3,
3,
3,
0,
2,
1,
0,
0,
2,
0,
0,
0,
0,
0,
1,
2,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
1,
2,
1,
1,
1,
2,
1,
1,
1,
1,
2,
2,
2,
0,
1,
0,
1,
1,
1,
0,
0,
1,
1,
1,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
3,
3,
2,
2,
3,
0,
1,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
1,
0,
3,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
2,
2,
1,
1,
1,
1,
1,
2,
1,
1,
2,
2,
1,
2,
2,
1,
0,
1,
1,
1,
1,
1,
0,
1,
0,
0,
1,
0,
0,
0,
1,
1,
0,
0,
3,
1,
0,
1,
0,
2,
2,
2,
2,
3,
2,
1,
1,
1,
2,
3,
0,
0,
1,
0,
2,
1,
1,
0,
1,
1,
1,
1,
2,
1,
1,
1,
1,
2,
2,
1,
2,
1,
2,
2,
1,
1,
0,
1,
2,
1,
2,
2,
1,
1,
1,
0,
0,
1,
1,
1,
2,
1,
0,
1,
0,
0,
0,
0,
2,
1,
0,
1,
0,
3,
1,
2,
2,
2,
2,
1,
2,
2,
1,
1,
1,
0,
2,
1,
2,
2,
1,
1,
2,
1,
1,
0,
2,
1,
1,
1,
1,
2,
2,
2,
2,
2,
2,
2,
1,
2,
0,
1,
1,
0,
2,
1,
1,
1,
1,
1,
0,
0,
1,
1,
1,
1,
0,
1,
0,
0,
0,
0,
2,
1,
1,
1,
1,
2,
2,
2,
2,
1,
2,
2,
2,
1,
2,
2,
1,
1,
2,
1,
2,
3,
2,
2,
1,
1,
1,
1,
0,
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,
0,
0,
0,
0,
0,
0,
0,
0,
2,
2,
2,
3,
2,
0,
1,
2,
0,
1,
2,
1,
1,
0,
1,
0,
1,
2,
1,
2,
0,
0,
0,
1,
1,
0,
0,
0,
1,
0,
0,
2,
1,
1,
0,
0,
1,
1,
0,
1,
1,
1,
1,
0,
2,
0,
1,
1,
1,
0,
0,
1,
1,
0,
0,
0,
0,
1,
0,
0,
0,
1,
0,
0,
2,
0,
0,
0,
0,
1,
2,
2,
2,
2,
2,
2,
2,
1,
2,
1,
1,
1,
1,
1,
1,
1,
0,
1,
1,
1,
1,
1,
2,
1,
1,
1,
1,
2,
2,
2,
2,
1,
1,
2,
1,
2,
1,
1,
1,
0,
2,
1,
2,
1,
1,
1,
0,
2,
1,
1,
1,
1,
0,
1,
0,
0,
0,
0,
3,
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,
0,
1,
0,
1,
0,
1,
1,
0,
1,
0,
1,
1,
1,
1,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
2,
2,
3,
2,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
1,
1,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
1,
2,
1,
1,
1,
1,
1,
1,
0,
0,
2,
2,
2,
2,
2,
0,
1,
1,
0,
1,
1,
1,
1,
1,
0,
0,
1,
0,
0,
0,
1,
1,
0,
1,
2,
3,
1,
2,
1,
0,
1,
1,
0,
2,
2,
2,
0,
0,
1,
0,
0,
1,
1,
1,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
1,
2,
1,
1,
1,
1,
2,
1,
1,
1,
1,
1,
1,
1,
1,
0,
1,
1,
0,
1,
0,
1,
0,
1,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
2,
2,
2,
2,
2,
0,
0,
2,
0,
0,
2,
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
2,
2,
1,
1,
1,
1,
1,
0,
0,
1,
2,
1,
1,
0,
1,
0,
1,
0,
0,
0,
0,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
2,
2,
2,
2,
0,
0,
2,
0,
1,
1,
0,
0,
0,
1,
0,
0,
2,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
0,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
1,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
2,
2,
3,
2,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
1,
0,
2,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
2,
1,
1,
0,
0,
1,
0,
0,
0,
1,
1,
0,
0,
1,
0,
1,
1,
0,
0,
0,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
1,
2,
2,
2,
1,
2,
1,
2,
2,
1,
1,
2,
1,
1,
1,
0,
1,
1,
1,
1,
2,
0,
1,
0,
1,
1,
1,
1,
0,
1,
1,
1,
1,
2,
1,
1,
1,
1,
1,
1,
0,
0,
1,
2,
1,
1,
1,
1,
1,
1,
0,
0,
1,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
1,
3,
1,
1,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
2,
2,
2,
1,
0,
0,
1,
0,
2,
0,
0,
0,
0,
0,
1,
1,
1,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
1,
0,
2,
0,
1,
0,
0,
1,
1,
2,
0,
1,
0,
1,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
2,
2,
2,
2,
0,
1,
1,
0,
2,
1,
0,
1,
1,
1,
0,
0,
1,
0,
2,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
0,
1,
0,
0,
0,
1,
1,
0,
0,
1,
0,
0,
1,
0,
0,
0,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
2,
2,
2,
2,
0,
0,
1,
0,
0,
0,
1,
0,
1,
0,
0,
0,
1,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
1,
1,
1,
0,
0,
1,
1,
1,
0,
1,
0,
0,
0,
0,
0,
0,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
1,
0,
0,
1,
2,
1,
1,
1,
1,
1,
1,
2,
2,
1,
0,
0,
1,
0,
1,
0,
0,
0,
0,
1,
1,
1,
1,
0,
0,
0,
1,
1,
2,
1,
1,
1,
1,
0,
0,
0,
1,
1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
2,
1,
2,
1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
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,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
1,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
1,
0,
1,
1,
1,
0,
0,
1,
0,
0,
1,
0,
1,
0,
0,
0,
1,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
0,
1,
0,
2,
0,
0,
2,
0,
1,
0,
0,
1,
0,
0,
1,
1,
1,
0,
0,
1,
1,
0,
1,
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
1,
1,
1,
1,
1,
1,
1,
2,
0,
0,
0,
0,
0,
0,
2,
1,
0,
1,
1,
0,
0,
1,
1,
1,
0,
1,
0,
0,
0,
0,
0,
0,
2,
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,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
1,
0,
1,
1,
0,
1,
1,
1,
1,
1,
0,
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,
0,
0,
0,
0,
0,
0,
0,
1
];
exports.Latin5BulgarianModel = {
"charToOrderMap": exports.Latin5_BulgarianCharToOrderMap,
"precedenceMatrix": exports.BulgarianLangModel,
"mTypicalPositiveRatio": 0.969392,
"keepEnglishLetter": false,
"charsetName": "ISO-8859-5"
};
exports.Win1251BulgarianModel = {
"charToOrderMap": exports.win1251BulgarianCharToOrderMap,
"precedenceMatrix": exports.BulgarianLangModel,
"mTypicalPositiveRatio": 0.969392,
"keepEnglishLetter": false,
"charsetName": "windows-1251"
};
}
});
// node_modules/jschardet/src/sbcsgroupprober.js
var require_sbcsgroupprober = __commonJS({
"node_modules/jschardet/src/sbcsgroupprober.js"(exports, module2) {
var SingleByteCharSetProber = require_sbcharsetprober();
var CharSetGroupProber = require_charsetgroupprober();
var Win1255HebrewModel = require_langhebrewmodel().Win1255HebrewModel;
var HebrewProber = require_hebrewprober();
var cyrillicModels = require_langcyrillicmodel();
var greekModels = require_langgreekmodel();
var TIS620ThaiModel = require_langthaimodel().TIS620ThaiModel;
var hungarianModels = require_langhungarianmodel();
var bulgarianModels = require_langbulgarianmodel();
function SBCSGroupProber() {
CharSetGroupProber.apply(this);
var self = this;
function init() {
self._mProbers = [
new SingleByteCharSetProber(cyrillicModels.Win1251CyrillicModel),
new SingleByteCharSetProber(cyrillicModels.Koi8rModel),
new SingleByteCharSetProber(cyrillicModels.Latin5CyrillicModel),
new SingleByteCharSetProber(cyrillicModels.MacCyrillicModel),
new SingleByteCharSetProber(cyrillicModels.Ibm866Model),
new SingleByteCharSetProber(cyrillicModels.Ibm855Model),
new SingleByteCharSetProber(greekModels.Latin7GreekModel),
new SingleByteCharSetProber(greekModels.Win1253GreekModel),
new SingleByteCharSetProber(bulgarianModels.Latin5BulgarianModel),
new SingleByteCharSetProber(bulgarianModels.Win1251BulgarianModel),
new SingleByteCharSetProber(hungarianModels.Latin2HungarianModel),
new SingleByteCharSetProber(hungarianModels.Win1250HungarianModel),
new SingleByteCharSetProber(TIS620ThaiModel)
];
var hebrewProber = new HebrewProber();
var logicalHebrewProber = new SingleByteCharSetProber(Win1255HebrewModel, false, hebrewProber);
var visualHebrewProber = new SingleByteCharSetProber(Win1255HebrewModel, true, hebrewProber);
hebrewProber.setModelProbers(logicalHebrewProber, visualHebrewProber);
self._mProbers.push(hebrewProber, logicalHebrewProber, visualHebrewProber);
self.reset();
}
init();
}
SBCSGroupProber.prototype = new CharSetGroupProber();
module2.exports = SBCSGroupProber;
}
});
// node_modules/jschardet/src/latin1prober.js
var require_latin1prober = __commonJS({
"node_modules/jschardet/src/latin1prober.js"(exports, module2) {
var CharSetProber = require_charsetprober();
var Constants = require_constants();
var UDF = 0;
var OTH = 1;
var ASC = 2;
var ASS = 3;
var ACV = 4;
var ACO = 5;
var ASV = 6;
var ASO = 7;
var Latin1_CharToClass = [
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
ASC,
ASC,
ASC,
ASC,
ASC,
ASC,
ASC,
ASC,
ASC,
ASC,
ASC,
ASC,
ASC,
ASC,
ASC,
ASC,
ASC,
ASC,
ASC,
ASC,
ASC,
ASC,
ASC,
ASC,
ASC,
ASC,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
ASS,
ASS,
ASS,
ASS,
ASS,
ASS,
ASS,
ASS,
ASS,
ASS,
ASS,
ASS,
ASS,
ASS,
ASS,
ASS,
ASS,
ASS,
ASS,
ASS,
ASS,
ASS,
ASS,
ASS,
ASS,
ASS,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
UDF,
OTH,
ASO,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
ACO,
OTH,
ACO,
UDF,
ACO,
UDF,
UDF,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
ASO,
OTH,
ASO,
UDF,
ASO,
ACO,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
OTH,
ACV,
ACV,
ACV,
ACV,
ACV,
ACV,
ACO,
ACO,
ACV,
ACV,
ACV,
ACV,
ACV,
ACV,
ACV,
ACV,
ACO,
ACO,
ACV,
ACV,
ACV,
ACV,
ACV,
OTH,
ACV,
ACV,
ACV,
ACV,
ACV,
ACO,
ACO,
ACO,
ASV,
ASV,
ASV,
ASV,
ASV,
ASV,
ASO,
ASO,
ASV,
ASV,
ASV,
ASV,
ASV,
ASV,
ASV,
ASV,
ASO,
ASO,
ASV,
ASV,
ASV,
ASV,
ASV,
OTH,
ASV,
ASV,
ASV,
ASV,
ASV,
ASO,
ASO,
ASO
];
var Latin1ClassModel = [
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
3,
3,
3,
3,
0,
3,
3,
3,
3,
3,
3,
3,
0,
3,
3,
3,
1,
1,
3,
3,
0,
3,
3,
3,
1,
2,
1,
2,
0,
3,
3,
3,
3,
3,
3,
3,
0,
3,
1,
3,
1,
1,
1,
3,
0,
3,
1,
3,
1,
1,
3,
3
];
function Latin1Prober() {
CharSetProber.apply(this);
var FREQ_CAT_NUM = 4;
var CLASS_NUM = 8;
var self = this;
function init() {
self.reset();
}
this.reset = function() {
this._mLastCharClass = OTH;
this._mFreqCounter = [];
for (var i = 0; i < FREQ_CAT_NUM; this._mFreqCounter[i++] = 0)
;
Latin1Prober.prototype.reset.apply(this);
};
this.getCharsetName = function() {
return "windows-1252";
};
this.feed = function(aBuf) {
aBuf = this.filterWithEnglishLetters(aBuf);
for (var i = 0; i < aBuf.length; i++) {
var c = aBuf.charCodeAt(i);
var charClass = Latin1_CharToClass[c];
var freq = Latin1ClassModel[this._mLastCharClass * CLASS_NUM + charClass];
if (freq == 0) {
this._mState = Constants.notMe;
break;
}
this._mFreqCounter[freq]++;
this._mLastCharClass = charClass;
}
return this.getState();
};
this.getConfidence = function() {
var confidence;
var constants;
if (this.getState() == Constants.notMe) {
return 0.01;
}
var total = 0;
for (var i = 0; i < this._mFreqCounter.length; i++) {
total += this._mFreqCounter[i];
}
if (total < 0.01) {
constants = 0;
} else {
confidence = this._mFreqCounter[3] / total - this._mFreqCounter[1] * 20 / total;
}
if (confidence < 0) {
confidence = 0;
}
confidence = confidence * 0.95;
return confidence;
};
init();
}
Latin1Prober.prototype = new CharSetProber();
module2.exports = Latin1Prober;
}
});
// node_modules/jschardet/src/escsm.js
var require_escsm = __commonJS({
"node_modules/jschardet/src/escsm.js"(exports) {
var consts = require_constants();
var HZ_cls = [
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,
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,
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,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
4,
0,
5,
2,
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,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1
];
var HZ_st = [
consts.start,
consts.error,
3,
consts.start,
consts.start,
consts.start,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.error,
consts.error,
consts.start,
consts.start,
4,
consts.error,
5,
consts.error,
6,
consts.error,
5,
5,
4,
consts.error,
4,
consts.error,
4,
4,
4,
consts.error,
4,
consts.error,
4,
consts.itsMe,
consts.start,
consts.start,
consts.start,
consts.start,
consts.start,
consts.start
];
var HZCharLenTable = [0, 0, 0, 0, 0, 0];
exports.HZSMModel = {
"classTable": HZ_cls,
"classFactor": 6,
"stateTable": HZ_st,
"charLenTable": HZCharLenTable,
"name": "HZ-GB-2312"
};
var ISO2022CN_cls = [
2,
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,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
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,
4,
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,
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,
0,
0,
0,
0,
0,
0,
0,
0,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2
];
var ISO2022CN_st = [
consts.start,
3,
consts.error,
consts.start,
consts.start,
consts.start,
consts.start,
consts.start,
consts.start,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.error,
consts.error,
consts.error,
4,
consts.error,
consts.error,
consts.error,
consts.error,
consts.itsMe,
consts.error,
consts.error,
consts.error,
consts.error,
5,
6,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.itsMe,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.itsMe,
consts.error,
consts.start
];
var ISO2022CNCharLenTable = [0, 0, 0, 0, 0, 0, 0, 0, 0];
exports.ISO2022CNSMModel = {
"classTable": ISO2022CN_cls,
"classFactor": 9,
"stateTable": ISO2022CN_st,
"charLenTable": ISO2022CNCharLenTable,
"name": "ISO-2022-CN"
};
var ISO2022JP_cls = [
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
7,
0,
0,
0,
3,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
6,
0,
4,
0,
8,
0,
0,
0,
0,
9,
5,
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,
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,
0,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2
];
var ISO2022JP_st = [
consts.start,
3,
consts.error,
consts.start,
consts.start,
consts.start,
consts.start,
consts.start,
consts.start,
consts.start,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.error,
consts.error,
consts.error,
5,
consts.error,
consts.error,
consts.error,
4,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
6,
consts.itsMe,
consts.error,
consts.itsMe,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.itsMe,
consts.itsMe,
consts.error,
consts.error,
consts.error,
consts.itsMe,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.itsMe,
consts.error,
consts.start,
consts.start
];
var ISO2022JPCharLenTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
exports.ISO2022JPSMModel = {
"classTable": ISO2022JP_cls,
"classFactor": 10,
"stateTable": ISO2022JP_st,
"charLenTable": ISO2022JPCharLenTable,
"name": "ISO-2022-JP"
};
var ISO2022KR_cls = [
2,
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,
1,
0,
0,
0,
0,
0,
0,
0,
0,
3,
0,
0,
0,
0,
4,
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,
5,
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,
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,
0,
0,
0,
0,
0,
0,
0,
0,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2
];
var ISO2022KR_st = [
consts.start,
3,
consts.error,
consts.start,
consts.start,
consts.start,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.itsMe,
consts.error,
consts.error,
consts.error,
4,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
5,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.error,
consts.itsMe,
consts.start,
consts.start,
consts.start,
consts.start
];
var ISO2022KRCharLenTable = [0, 0, 0, 0, 0, 0];
exports.ISO2022KRSMModel = {
"classTable": ISO2022KR_cls,
"classFactor": 6,
"stateTable": ISO2022KR_st,
"charLenTable": ISO2022KRCharLenTable,
"name": "ISO-2022-KR"
};
}
});
// node_modules/jschardet/src/escprober.js
var require_escprober = __commonJS({
"node_modules/jschardet/src/escprober.js"(exports, module2) {
var CharSetProber = require_charsetprober();
var CodingStateMachine = require_codingstatemachine();
var escsm = require_escsm();
var constants = require_constants();
function EscCharSetProber() {
CharSetProber.apply(this);
var self = this;
function init() {
self._mCodingSM = [
new CodingStateMachine(escsm.HZSMModel),
new CodingStateMachine(escsm.ISO2022CNSMModel),
new CodingStateMachine(escsm.ISO2022JPSMModel),
new CodingStateMachine(escsm.ISO2022KRSMModel)
];
self.reset();
}
this.reset = function() {
EscCharSetProber.prototype.reset.apply(this);
for (var i = 0, codingSM; codingSM = this._mCodingSM[i]; i++) {
if (!codingSM)
continue;
codingSM.active = true;
codingSM.reset();
}
this._mActiveSM = self._mCodingSM.length;
this._mDetectedCharset = null;
};
this.getCharsetName = function() {
return this._mDetectedCharset;
};
this.getConfidence = function() {
if (this._mDetectedCharset) {
return 0.99;
} else {
return 0;
}
};
this.feed = function(aBuf) {
for (var i = 0, c; i < aBuf.length; i++) {
c = aBuf[i];
for (var j = 0, codingSM; codingSM = this._mCodingSM[j]; j++) {
if (!codingSM || !codingSM.active)
continue;
var codingState = codingSM.nextState(c);
if (codingState == constants.error) {
codingSM.active = false;
this._mActiveSM--;
if (this._mActiveSM <= 0) {
this._mState = constants.notMe;
return this.getState();
}
} else if (codingState == constants.itsMe) {
this._mState = constants.foundIt;
this._mDetectedCharset = codingSM.getCodingStateMachine();
return this.getState();
}
}
}
return this.getState();
};
init();
}
EscCharSetProber.prototype = new CharSetProber();
module2.exports = EscCharSetProber;
}
});
// node_modules/jschardet/src/universaldetector.js
var require_universaldetector = __commonJS({
"node_modules/jschardet/src/universaldetector.js"(exports, module2) {
var constants = require_constants();
var MBCSGroupProber = require_mbcsgroupprober();
var SBCSGroupProber = require_sbcsgroupprober();
var Latin1Prober = require_latin1prober();
var EscCharSetProber = require_escprober();
var logger = require_logger();
function UniversalDetector(options) {
if (!options)
options = {};
if (!options.minimumThreshold)
options.minimumThreshold = 0.2;
var _state = {
pureAscii: 0,
escAscii: 1,
highbyte: 2
};
var self = this;
function init() {
self._highBitDetector = /[\x80-\xFF]/;
self._escDetector = /(\x1B|~\{)/;
self._mEscCharsetProber = null;
self._mCharsetProbers = [];
self.reset();
}
this.reset = function() {
this.result = { "encoding": null, "confidence": 0 };
this.results = [];
this.done = false;
this._mStart = true;
this._mGotData = false;
this._mInputState = _state.pureAscii;
this._mLastChar = "";
this._mBOM = "";
if (this._mEscCharsetProber) {
this._mEscCharsetProber.reset();
}
for (var i = 0, prober; prober = this._mCharsetProbers[i]; i++) {
prober.reset();
}
};
this.feed = function(aBuf) {
if (this.done)
return;
var aLen = aBuf.length;
if (!aLen)
return;
if (!this._mGotData) {
this._mBOM += aBuf;
if (this._mBOM.slice(0, 3) == "\xEF\xBB\xBF") {
this.result = { "encoding": "UTF-8", "confidence": 1 };
} else if (this._mBOM.slice(0, 4) == "\xFF\xFE\0\0") {
this.result = { "encoding": "UTF-32LE", "confidence": 1 };
} else if (this._mBOM.slice(0, 4) == "\0\0\xFE\xFF") {
this.result = { "encoding": "UTF-32BE", "confidence": 1 };
} else if (this._mBOM.slice(0, 4) == "\xFE\xFF\0\0") {
this.result = { "encoding": "X-ISO-10646-UCS-4-3412", "confidence": 1 };
} else if (this._mBOM.slice(0, 4) == "\0\0\xFF\xFE") {
this.result = { "encoding": "X-ISO-10646-UCS-4-2143", "confidence": 1 };
} else if (this._mBOM.slice(0, 2) == "\xFF\xFE") {
this.result = { "encoding": "UTF-16LE", "confidence": 1 };
} else if (this._mBOM.slice(0, 2) == "\xFE\xFF") {
this.result = { "encoding": "UTF-16BE", "confidence": 1 };
}
if (this.result.confidence > 0) {
this.results = [this.result];
}
if (this._mBOM.length > 3) {
this._mGotData = true;
}
}
if (this.result.encoding && this.result.confidence > 0) {
this.done = true;
return;
}
if (this._mInputState == _state.pureAscii) {
if (this._highBitDetector.test(aBuf)) {
this._mInputState = _state.highbyte;
} else if (this._escDetector.test(this._mLastChar + aBuf)) {
this._mInputState = _state.escAscii;
}
}
this._mLastChar = aBuf.slice(-1);
if (this._mInputState == _state.escAscii) {
if (!this._mEscCharsetProber) {
this._mEscCharsetProber = new EscCharSetProber();
}
if (this._mEscCharsetProber.feed(aBuf) == constants.foundIt) {
this.result = {
"encoding": this._mEscCharsetProber.getCharsetName(),
"confidence": this._mEscCharsetProber.getConfidence()
};
this.results = [this.result];
this.done = true;
}
} else if (this._mInputState == _state.highbyte) {
if (this._mCharsetProbers.length == 0) {
this._mCharsetProbers = [
new MBCSGroupProber(),
new SBCSGroupProber(),
new Latin1Prober()
];
}
for (var i = 0, prober; prober = this._mCharsetProbers[i]; i++) {
if (prober.feed(aBuf) == constants.foundIt) {
this.result = {
"encoding": prober.getCharsetName(),
"confidence": prober.getConfidence()
};
this.results = [this.result];
this.done = true;
break;
}
}
}
};
this.close = function() {
if (this.done)
return;
if (this._mBOM.length === 0) {
logger.log("no data received!\n");
return;
}
this.done = true;
if (this._mInputState == _state.pureAscii) {
logger.log("pure ascii");
this.result = { "encoding": "ascii", "confidence": 1 };
this.results.push(this.result);
return this.result;
}
if (this._mInputState == _state.highbyte) {
for (var i = 0, prober; prober = this._mCharsetProbers[i]; i++) {
if (!prober || !prober.getCharsetName())
continue;
this.results.push({
"encoding": prober.getCharsetName(),
"confidence": prober.getConfidence()
});
logger.log(prober.getCharsetName() + " confidence " + prober.getConfidence());
}
this.results.sort(function(a, b) {
return b.confidence - a.confidence;
});
if (this.results.length > 0) {
var topResult = this.results[0];
if (topResult.confidence >= options.minimumThreshold) {
this.result = topResult;
return topResult;
}
}
}
if (logger.enabled) {
logger.log("no probers hit minimum threshhold\n");
for (var i = 0, prober; prober = this._mCharsetProbers[i]; i++) {
if (!prober)
continue;
logger.log(prober.getCharsetName() + " confidence = " + prober.getConfidence() + "\n");
}
}
};
init();
}
module2.exports = UniversalDetector;
}
});
// node_modules/jschardet/src/index.js
var require_src = __commonJS({
"node_modules/jschardet/src/index.js"(exports) {
var UniversalDetector = require_universaldetector();
var setLogger = require_logger().setLogger;
exports.detect = function(buffer, options) {
var u = runUniversalDetector(buffer, options);
return u.result;
};
exports.detectAll = function(buffer, options) {
var u = runUniversalDetector(buffer, options);
return u.results;
};
exports.UniversalDetector = UniversalDetector;
exports.enableDebug = function() {
setLogger(console.log.bind(console));
};
function runUniversalDetector(buffer, options) {
var u = new UniversalDetector(options);
u.reset();
if (typeof Buffer == "function" && buffer instanceof Buffer) {
u.feed(buffer.toString("binary"));
} else {
u.feed(buffer);
}
u.close();
return u;
}
}
});
// node_modules/jschardet/index.js
var require_jschardet = __commonJS({
"node_modules/jschardet/index.js"(exports, module2) {
module2.exports = require_src();
}
});
// src/main.ts
var main_exports = {};
__export(main_exports, {
default: () => CompletrPlugin
});
module.exports = __toCommonJS(main_exports);
var import_obsidian6 = require("obsidian");
// src/snippet_manager.ts
var import_view2 = require("@codemirror/view");
// src/editor_helpers.ts
function posFromIndex(doc, offset) {
let line = doc.lineAt(offset);
return { line: line.number - 1, ch: offset - line.from };
}
function indexFromPos(doc, pos) {
const ch = pos.ch;
const line = doc.line(pos.line + 1);
return Math.min(line.from + Math.max(0, ch), line.to);
}
function editorToCodeMirrorState(editor) {
return editor.cm.state;
}
function editorToCodeMirrorView(editor) {
return editor.cm;
}
function maybeLowerCase(str, lowerCase) {
return lowerCase ? str.toLowerCase() : str;
}
function matchWordBackwards(editor, cursor, charPredicate, maxLookBackDistance = 50) {
let query = "", separatorChar = null;
let lookBackEnd = Math.max(0, cursor.ch - maxLookBackDistance);
for (let i = cursor.ch - 1; i >= lookBackEnd; i--) {
const prevChar = editor.getRange({ ...cursor, ch: i }, { ...cursor, ch: i + 1 });
if (!charPredicate(prevChar)) {
separatorChar = prevChar;
break;
}
query = prevChar + query;
}
return { query, separatorChar };
}
function isInFrontMatterBlock(editor, pos) {
if (pos.line === 0)
return false;
const bounds = getFrontMatterBounds(editor);
if (!bounds)
return false;
return pos.line > bounds.startLine && pos.line < bounds.endLine;
}
function getFrontMatterBounds(editor) {
let startLine = -1;
for (let i = 0; i < Math.min(5, editor.lastLine()); i++) {
if (editor.getLine(i) !== "---")
continue;
startLine = i;
break;
}
if (startLine === -1)
return null;
let endLine = -1;
for (let i = startLine + 1; i <= Math.min(50, editor.lastLine()); i++) {
if (editor.getLine(i) !== "---")
continue;
endLine = i;
break;
}
if (endLine === -1)
return null;
return { startLine, endLine };
}
var _BlockType = class {
constructor(c, isMultiLine, otherType0 = null) {
this.c = c;
this.isMultiLine = isMultiLine;
this.otherType0 = otherType0;
}
get isDollarBlock() {
return this === _BlockType.DOLLAR_SINGLE || this === _BlockType.DOLLAR_MULTI;
}
get isCodeBlock() {
return !this.isDollarBlock;
}
get otherType() {
return this.otherType0;
}
};
var BlockType = _BlockType;
BlockType.DOLLAR_MULTI = new _BlockType("$$", true);
BlockType.DOLLAR_SINGLE = new _BlockType("$", false, _BlockType.DOLLAR_MULTI);
BlockType.CODE_MULTI = new _BlockType("```", true);
BlockType.CODE_SINGLE = new _BlockType("`", false, _BlockType.CODE_MULTI);
(() => {
_BlockType.DOLLAR_MULTI.otherType0 = _BlockType.DOLLAR_SINGLE;
_BlockType.CODE_MULTI.otherType0 = _BlockType.CODE_SINGLE;
})();
BlockType.SINGLE_TYPES = [_BlockType.DOLLAR_SINGLE, _BlockType.CODE_SINGLE];
function getLatexBlockType(editor, cursorPos, triggerInCodeBlocks) {
var _a;
const frontMatterBounds = (_a = getFrontMatterBounds(editor)) != null ? _a : { startLine: -1, endLine: -1 };
const blockTypeStack = [];
for (let lineIndex = Math.max(0, cursorPos.line - 5e3); lineIndex <= cursorPos.line; lineIndex++) {
if (lineIndex >= frontMatterBounds.startLine && lineIndex <= frontMatterBounds.endLine)
continue;
const line = editor.getLine(lineIndex);
for (let j = cursorPos.line == lineIndex ? cursorPos.ch - 1 : line.length - 1; j >= 0; j--) {
const currentChar = line.charAt(j);
let matchingBlockType = BlockType.SINGLE_TYPES.find((b) => b.c.charAt(0) === currentChar);
if (!matchingBlockType || line.charAt(Math.max(0, j - 1)) === "\\")
continue;
const multiTypeLength = matchingBlockType.otherType.c.length;
const isDouble = j + 1 >= multiTypeLength && substringMatches(line, matchingBlockType.otherType.c, j - multiTypeLength + 1);
if (isDouble) {
j -= multiTypeLength - 1;
matchingBlockType = matchingBlockType.otherType;
}
blockTypeStack.push({ type: matchingBlockType, line: lineIndex });
}
}
if (blockTypeStack.length < 1)
return null;
let currentIndex = 0;
while (true) {
if (currentIndex >= blockTypeStack.length)
return null;
const currentBlock = blockTypeStack[currentIndex];
const otherBlockIndex = indexOf(blockTypeStack, ({ type }) => type === currentBlock.type, currentIndex + 1);
if (otherBlockIndex === -1) {
if (!triggerInCodeBlocks && currentBlock.type.isCodeBlock)
return null;
if (currentBlock.type.isCodeBlock || currentBlock.type === BlockType.DOLLAR_SINGLE && currentBlock.line !== cursorPos.line) {
currentIndex++;
continue;
}
return currentBlock.type;
} else {
currentIndex = otherBlockIndex + 1;
}
}
}
function indexOf(arr, predicate, fromIndex = 0) {
for (let i = fromIndex; i < arr.length; i++) {
if (predicate(arr[i]))
return i;
}
return -1;
}
function substringMatches(str, toMatch, from) {
const bound = from + toMatch.length - 1;
for (let i = from; i < bound; i++) {
if (str.charAt(i) !== toMatch.charAt(i - from))
return false;
}
return true;
}
// src/marker_state_field.ts
var import_state = require("@codemirror/state");
var import_view = require("@codemirror/view");
var addMark = import_state.StateEffect.define();
var clearMarks = import_state.StateEffect.define();
var removeMarkBySpecAttribute = import_state.StateEffect.define();
var markerStateField = import_state.StateField.define({
create() {
return import_view.Decoration.none;
},
update(value, tr) {
value = value.map(tr.changes);
for (let effect of tr.effects) {
if (effect.is(addMark))
value = value.update({ add: [effect.value] });
else if (effect.is(clearMarks))
value = value.update({ filter: () => false });
else if (effect.is(removeMarkBySpecAttribute))
value = value.update({ filter: (from, to, ref) => ref.spec[effect.value.attribute] !== effect.value[effect.value.attribute] });
}
return value;
},
provide: (f) => import_view.EditorView.decorations.from(f)
});
// src/snippet_manager.ts
var COLORS = ["lightskyblue", "orange", "lime", "pink", "cornsilk", "magenta", "navajowhite"];
var PlaceholderReference = class {
constructor(editor) {
this.editor = editor;
}
get marker() {
const state = editorToCodeMirrorState(this.editor);
const iter = state.field(markerStateField).iter();
while (iter.value) {
if (iter.value.spec.reference === this) {
return {
from: iter.from,
to: iter.to,
value: iter.value
};
}
iter.next();
}
return null;
}
removeFromEditor() {
editorToCodeMirrorView(this.editor).dispatch({
effects: removeMarkBySpecAttribute.of({ attribute: "reference", reference: this })
});
}
};
var SnippetManager = class {
constructor() {
this.currentPlaceholderReferences = [];
}
handleSnippet(value, start, editor) {
let colorIndex = 0;
for (; colorIndex < COLORS.length; colorIndex++) {
if (!this.currentPlaceholderReferences.find((p) => p.marker.value.spec.attributes.class.endsWith(colorIndex + "")))
break;
}
if (colorIndex === COLORS.length) {
console.log("Completr: No colors left for snippet, using random color");
colorIndex = Math.floor(Math.random() * COLORS.length);
}
const editorView = editorToCodeMirrorView(editor);
const lines = value.split("\n");
for (let lineIndex = lines.length - 1; lineIndex >= 0; lineIndex--) {
const line = lines[lineIndex];
for (let i = line.length - 1; i >= 0; i--) {
const c = line.charAt(i);
if (c !== "#" && c !== "~")
continue;
const lineBaseOffset = lineIndex === 0 ? start.ch : 0;
if (c === "~") {
const cursorPos = { line: start.line + lineIndex, ch: lineBaseOffset + i };
editor.setCursor(cursorPos);
editor.replaceRange("", cursorPos, { ...cursorPos, ch: cursorPos.ch + 1 });
continue;
}
const reference = new PlaceholderReference(editor);
let mark = import_view2.Decoration.mark({
inclusive: true,
attributes: {
style: "border-width: 1px 0 1px 0;border-style: solid;",
class: "completr-suggestion-placeholder" + colorIndex
},
reference
}).range(
indexFromPos(editorView.state.doc, { line: start.line + lineIndex, ch: lineBaseOffset + i }),
indexFromPos(editorView.state.doc, { line: start.line + lineIndex, ch: lineBaseOffset + i + 1 })
);
editorView.dispatch({ effects: addMark.of(mark) });
this.currentPlaceholderReferences.unshift(reference);
}
}
this.selectMarker(this.currentPlaceholderReferences[0]);
}
consumeAndGotoNextMarker(editor) {
const oldPlaceholder = this.currentPlaceholderReferences.shift();
const oldRange = SnippetManager.rangeFromPlaceholder(oldPlaceholder);
oldPlaceholder.removeFromEditor();
if (this.currentPlaceholderReferences.length === 0)
return false;
const placeholder = this.currentPlaceholderReferences[0];
const newRange = SnippetManager.rangeFromPlaceholder(placeholder);
if (!newRange)
return false;
if (newRange.from.ch <= oldRange.from.ch && newRange.to.ch >= oldRange.to.ch) {
editor.setCursor({ ...newRange.to });
} else {
this.selectMarker(placeholder);
}
return true;
}
placeholderAtPos(pos) {
for (let i = this.currentPlaceholderReferences.length - 1; i >= 0; i--) {
const placeholder = this.currentPlaceholderReferences[i];
const range = SnippetManager.rangeFromPlaceholder(placeholder);
if (!range) {
this.currentPlaceholderReferences.slice(i, 1);
continue;
}
if (range.from.ch <= pos.ch && range.to.ch >= pos.ch)
return placeholder;
}
return null;
}
selectMarker(reference) {
if (!reference)
return;
const from = posFromIndex(editorToCodeMirrorState(reference.editor).doc, reference.marker.from);
reference.editor.setSelection(from, { ...from, ch: from.ch + 1 });
}
clearAllPlaceholders() {
if (this.currentPlaceholderReferences.length === 0)
return;
const firstRef = this.currentPlaceholderReferences[0];
const view = editorToCodeMirrorView(firstRef.editor);
view.dispatch({
effects: clearMarks.of(null)
});
this.currentPlaceholderReferences = [];
}
static rangeFromPlaceholder(reference) {
const marker = reference.marker;
if (!marker)
return null;
return {
from: posFromIndex(editorToCodeMirrorState(reference.editor).doc, marker.from),
to: posFromIndex(editorToCodeMirrorState(reference.editor).doc, marker.to)
};
}
onunload() {
this.clearAllPlaceholders();
}
};
// src/provider/provider.ts
var Suggestion = class {
constructor(displayName, replacement, overrideStart, overrideEnd, opts) {
this.displayName = displayName;
this.replacement = replacement;
this.overrideStart = overrideStart;
this.overrideEnd = overrideEnd;
this.icon = opts == null ? void 0 : opts.icon;
this.color = opts == null ? void 0 : opts.color;
}
static fromString(suggestion, overrideStart) {
return new Suggestion(suggestion, suggestion, overrideStart);
}
getDisplayNameLowerCase(lowerCase) {
return maybeLowerCase(this.displayName, lowerCase);
}
derive(options) {
var _a, _b, _c, _d, _e, _f;
const derived = new Suggestion(
(_a = options.displayName) != null ? _a : this.displayName,
(_b = options.replacement) != null ? _b : this.replacement,
(_c = options.overrideStart) != null ? _c : this.overrideStart,
(_d = options.overrideEnd) != null ? _d : this.overrideEnd,
{
icon: (_e = options.icon) != null ? _e : this.icon,
color: (_f = options.color) != null ? _f : this.color
}
);
return derived;
}
};
// src/settings.ts
var DEFAULT_SETTINGS = {
characterRegex: "a-zA-Z\xF6\xE4\xFC\xD6\xC4\xDC\xDF",
maxLookBackDistance: 50,
autoFocus: true,
autoTrigger: true,
minWordLength: 2,
minWordTriggerLength: 3,
wordInsertionMode: "Ignore-Case & Replace" /* IGNORE_CASE_REPLACE */,
ignoreDiacriticsWhenFiltering: false,
latexProviderEnabled: true,
latexTriggerInCodeBlocks: true,
latexMinWordTriggerLength: 2,
latexIgnoreCase: false,
fileScannerProviderEnabled: true,
fileScannerScanCurrent: true,
wordListProviderEnabled: true,
frontMatterProviderEnabled: true,
frontMatterTagAppendSuffix: true,
frontMatterIgnoreCase: true,
calloutProviderEnabled: true,
calloutProviderSource: "Completr" /* COMPLETR */
};
function intoCompletrPath(vault, ...path) {
return vault.configDir + "/plugins/obsidian-completr/" + path.join("/");
}
// src/provider/latex_provider.ts
var import_obsidian = require("obsidian");
// src/provider/blacklist.ts
var BLACKLIST_PATH = "blacklisted_suggestions.txt";
var NEW_LINE_REGEX = /\r?\n/;
var SuggestionBlacklist = new class {
constructor() {
this.blacklist = /* @__PURE__ */ new Set();
}
add(suggestion) {
this.addFromText(suggestion.displayName);
}
addFromText(text) {
this.blacklist.add(text);
}
has(suggestion) {
return this.hasText(suggestion.displayName);
}
hasText(text) {
return this.blacklist.has(text);
}
filter(suggestions) {
if (this.blacklist.size < 1)
return suggestions;
return suggestions.filter((s) => !this.blacklist.has(s.displayName));
}
filterText(suggestions) {
if (this.blacklist.size < 1)
return suggestions;
return suggestions.filter((s) => !this.blacklist.has(s));
}
async saveData(vault) {
await vault.adapter.write(intoCompletrPath(vault, BLACKLIST_PATH), [...this.blacklist].join("\n"));
}
async loadData(vault) {
const path = intoCompletrPath(vault, BLACKLIST_PATH);
if (!await vault.adapter.exists(path))
return;
const contents = (await vault.adapter.read(path)).split(NEW_LINE_REGEX);
for (let word of contents) {
if (!word)
continue;
this.addFromText(word);
}
}
}();
// src/provider/latex_provider.ts
function substringUntil(str, delimiter) {
let index = str.indexOf(delimiter);
if (index === -1)
return str;
return str.substring(0, index);
}
var LATEX_COMMANDS_PATH = "latex_commands.json";
var LatexSuggestionProvider = class {
constructor() {
this.loadedCommands = [];
}
getSuggestions(context, settings) {
if (!settings.latexProviderEnabled || !context.query || context.query.length < settings.latexMinWordTriggerLength)
return [];
let editor = context.editor;
const latexBlockType = getLatexBlockType(editor, context.start, settings.latexTriggerInCodeBlocks);
const isSingleBlock = latexBlockType === BlockType.DOLLAR_SINGLE;
if (!latexBlockType)
return [];
const query = maybeLowerCase(context.query, settings.latexIgnoreCase);
const isSeparatorBackslash = context.separatorChar === "\\";
return this.loadedCommands.filter((s) => s.getDisplayNameLowerCase(settings.latexIgnoreCase).contains(query)).map((s) => {
let replacement = s.replacement;
replacement = isSeparatorBackslash ? replacement.substring(1) : replacement;
replacement = isSingleBlock ? replacement.replace(/\n/g, "") : replacement;
return {
displayName: s.displayName,
replacement,
priority: s.getDisplayNameLowerCase(settings.latexIgnoreCase).indexOf(query)
};
}).sort((a, b) => {
let val = a.priority - b.priority;
if (val == 0)
val = substringUntil(a.displayName, "{").length - substringUntil(b.displayName, "{").length;
return val;
}).map((obj) => new Suggestion(obj.displayName, obj.replacement));
}
async loadCommands(vault) {
const path = intoCompletrPath(vault, LATEX_COMMANDS_PATH);
if (!await vault.adapter.exists(path)) {
const defaultCommands = generateDefaultLatexCommands();
await vault.adapter.write(path, JSON.stringify(defaultCommands, null, 2));
this.loadedCommands = defaultCommands;
} else {
const data = await vault.adapter.read(path);
try {
const commands = JSON.parse(data).map(
(obj) => typeof obj === "string" ? Suggestion.fromString(obj) : new Suggestion(obj.displayName, obj.replacement)
);
const invalidCommand = commands.find((c) => c.displayName.includes("\n"));
if (invalidCommand)
throw new Error("Display name cannot contain a newline: " + invalidCommand.displayName);
this.loadedCommands = commands;
} catch (e) {
console.log("Completr latex commands parse error:", e.message);
new import_obsidian.Notice("Failed to parse latex commands file " + path + ". Using default commands.", 3e3);
this.loadedCommands = generateDefaultLatexCommands();
}
}
this.loadedCommands = SuggestionBlacklist.filter(this.loadedCommands);
}
};
var Latex = new LatexSuggestionProvider();
function generateEnvironments(environments) {
const result = [];
for (let i = 0; i < environments.length; i++) {
const environment = environments[i];
if (environment.hasStarVersion) {
environments.push({ ...environment, name: environment.name + "*", hasStarVersion: false });
}
result.push(new Suggestion(
`\\begin{${environment.name}}...`,
`\\begin{${environment.name}}${"{#}".repeat(environment.paramCount)}
${environment.paramCount < 1 ? "~\n" : ""}\\end{${environment.name}}`
));
}
return result;
}
function generateDefaultLatexCommands() {
return [
...generateEnvironments([
{ name: "align", paramCount: 0, hasStarVersion: true },
{ name: "alignat", paramCount: 1, hasStarVersion: true },
{ name: "aligned", paramCount: 0, hasStarVersion: false },
{ name: "alignedat", paramCount: 1, hasStarVersion: false },
{ name: "array", paramCount: 1, hasStarVersion: false },
{ name: "bmatrix", paramCount: 0, hasStarVersion: true },
{ name: "Bmatrix", paramCount: 0, hasStarVersion: true },
{ name: "bsmallmatrix", paramCount: 0, hasStarVersion: true },
{ name: "Bsmallmatrix", paramCount: 0, hasStarVersion: true },
{ name: "cases", paramCount: 0, hasStarVersion: true },
{ name: "crampedsubarray", paramCount: 1, hasStarVersion: false },
{ name: "dcases", paramCount: 0, hasStarVersion: true },
{ name: "drcases", paramCount: 0, hasStarVersion: true },
{ name: "empheq", paramCount: 2, hasStarVersion: false },
{ name: "eqnarray", paramCount: 0, hasStarVersion: true },
{ name: "equation", paramCount: 0, hasStarVersion: true },
{ name: "flalign", paramCount: 0, hasStarVersion: true },
{ name: "gather", paramCount: 0, hasStarVersion: true },
{ name: "gathered", paramCount: 0, hasStarVersion: false },
{ name: "lgathered", paramCount: 0, hasStarVersion: false },
{ name: "matrix", paramCount: 0, hasStarVersion: true },
{ name: "multiline", paramCount: 0, hasStarVersion: true },
{ name: "multilined", paramCount: 0, hasStarVersion: false },
{ name: "numcases", paramCount: 1, hasStarVersion: false },
{ name: "pmatrix", paramCount: 0, hasStarVersion: true },
{ name: "prooftree", paramCount: 0, hasStarVersion: false },
{ name: "psmallmatrix", paramCount: 0, hasStarVersion: true },
{ name: "rcases", paramCount: 0, hasStarVersion: true },
{ name: "rgathered", paramCount: 0, hasStarVersion: false },
{ name: "smallmatrix", paramCount: 0, hasStarVersion: true },
{ name: "split", paramCount: 0, hasStarVersion: false },
{ name: "spreadlines", paramCount: 1, hasStarVersion: false },
{ name: "subarray", paramCount: 1, hasStarVersion: false },
{ name: "subnumcases", paramCount: 1, hasStarVersion: false },
{ name: "vmatrix", paramCount: 0, hasStarVersion: true },
{ name: "Vmatrix", paramCount: 0, hasStarVersion: true },
{ name: "vsmallmatrix", paramCount: 0, hasStarVersion: true },
{ name: "Vsmallmatrix", paramCount: 0, hasStarVersion: true },
{ name: "xalignat", paramCount: 1, hasStarVersion: true },
{ name: "xxalignat", paramCount: 1, hasStarVersion: false }
]),
Suggestion.fromString("\\above{#}{#}"),
Suggestion.fromString("\\verb|#|"),
Suggestion.fromString("\\left\\"),
Suggestion.fromString("\\right\\"),
Suggestion.fromString("\\acute{#}"),
Suggestion.fromString("\\aleph"),
Suggestion.fromString("\\alpha"),
Suggestion.fromString("\\amalg"),
Suggestion.fromString("\\And"),
Suggestion.fromString("\\angle"),
Suggestion.fromString("\\approx"),
Suggestion.fromString("\\approxeq"),
Suggestion.fromString("\\arccos"),
Suggestion.fromString("\\arcsin"),
Suggestion.fromString("\\arctan"),
Suggestion.fromString("\\arg"),
Suggestion.fromString("\\array{#}"),
Suggestion.fromString("\\arrowvert"),
Suggestion.fromString("\\Arrowvert"),
Suggestion.fromString("\\ast"),
Suggestion.fromString("\\asymp"),
Suggestion.fromString("\\atop"),
Suggestion.fromString("\\backepsilon"),
Suggestion.fromString("\\backprime"),
Suggestion.fromString("\\backsim"),
Suggestion.fromString("\\backsimeq"),
Suggestion.fromString("\\backslash"),
Suggestion.fromString("\\bar{#}"),
Suggestion.fromString("\\barwedge"),
Suggestion.fromString("\\Bbb{#}"),
Suggestion.fromString("\\Bbbk"),
Suggestion.fromString("\\bbFont"),
Suggestion.fromString("\\bbox{#}"),
Suggestion.fromString("\\bcancel{#}"),
Suggestion.fromString("\\because"),
Suggestion.fromString("\\beta"),
Suggestion.fromString("\\beth"),
Suggestion.fromString("\\between"),
Suggestion.fromString("\\bf"),
Suggestion.fromString("\\bigcap"),
Suggestion.fromString("\\bigcirc"),
Suggestion.fromString("\\bigcup"),
Suggestion.fromString("\\bigodot"),
Suggestion.fromString("\\bigoplus"),
Suggestion.fromString("\\bigotimes"),
Suggestion.fromString("\\bigsqcup"),
Suggestion.fromString("\\bigstar"),
Suggestion.fromString("\\bigtimes"),
Suggestion.fromString("\\bigtriangledown"),
Suggestion.fromString("\\bigtriangleup"),
Suggestion.fromString("\\biguplus"),
Suggestion.fromString("\\bigvee"),
Suggestion.fromString("\\bigwedge"),
Suggestion.fromString("\\binom{#}{#}"),
Suggestion.fromString("\\blacklozenge"),
Suggestion.fromString("\\blacksquare"),
Suggestion.fromString("\\blacktriangle"),
Suggestion.fromString("\\blacktriangledown"),
Suggestion.fromString("\\blacktriangleleft"),
Suggestion.fromString("\\blacktriangleright"),
Suggestion.fromString("\\bmod"),
Suggestion.fromString("\\boldsymbol{#}"),
Suggestion.fromString("\\bot"),
Suggestion.fromString("\\bowtie"),
Suggestion.fromString("\\Box"),
Suggestion.fromString("\\boxdot"),
Suggestion.fromString("\\boxed{#}"),
Suggestion.fromString("\\boxminus"),
Suggestion.fromString("\\boxplus"),
Suggestion.fromString("\\boxtimes"),
Suggestion.fromString("\\bra{#}"),
Suggestion.fromString("\\Bra{#}"),
Suggestion.fromString("\\brace"),
Suggestion.fromString("\\bracevert"),
Suggestion.fromString("\\brack"),
Suggestion.fromString("\\braket{#}"),
Suggestion.fromString("\\Braket{#}"),
Suggestion.fromString("\\breve{#}"),
Suggestion.fromString("\\bullet"),
Suggestion.fromString("\\bumpeq"),
Suggestion.fromString("\\Bumpeq"),
Suggestion.fromString("\\cal"),
Suggestion.fromString("\\cancel{#}"),
Suggestion.fromString("\\cancelto{#}{#}"),
Suggestion.fromString("\\cap"),
Suggestion.fromString("\\Cap"),
Suggestion.fromString("\\cases{#}"),
Suggestion.fromString("\\cdot"),
Suggestion.fromString("\\cdotp"),
Suggestion.fromString("\\cdots"),
Suggestion.fromString("\\celsius"),
Suggestion.fromString("\\centercolon"),
Suggestion.fromString("\\centerdot"),
Suggestion.fromString("\\centernot{#}"),
Suggestion.fromString("\\centerOver{#}{#}"),
Suggestion.fromString("\\cfrac{#}{#}"),
Suggestion.fromString("\\check{#}"),
Suggestion.fromString("\\checkmark"),
Suggestion.fromString("\\chi"),
Suggestion.fromString("\\choose"),
Suggestion.fromString("\\circ"),
Suggestion.fromString("\\circeq"),
Suggestion.fromString("\\circlearrowleft"),
Suggestion.fromString("\\circlearrowright"),
Suggestion.fromString("\\circledast"),
Suggestion.fromString("\\circledcirc"),
Suggestion.fromString("\\circleddash"),
Suggestion.fromString("\\circledR"),
Suggestion.fromString("\\circledS"),
Suggestion.fromString("\\clap{#}"),
Suggestion.fromString("\\class{#}{#}"),
Suggestion.fromString("\\clubsuit"),
Suggestion.fromString("\\colon"),
Suggestion.fromString("\\colonapprox"),
Suggestion.fromString("\\Colonapprox"),
Suggestion.fromString("\\coloneq"),
Suggestion.fromString("\\Coloneq"),
Suggestion.fromString("\\coloneqq"),
Suggestion.fromString("\\Coloneqq"),
Suggestion.fromString("\\colonsim"),
Suggestion.fromString("\\Colonsim"),
Suggestion.fromString("\\color{#}"),
Suggestion.fromString("\\colorbox{#}{#}"),
Suggestion.fromString("\\complement"),
Suggestion.fromString("\\cong"),
Suggestion.fromString("\\coprod"),
Suggestion.fromString("\\cos"),
Suggestion.fromString("\\cosh"),
Suggestion.fromString("\\cot"),
Suggestion.fromString("\\coth"),
Suggestion.fromString("\\cramped{#}"),
Suggestion.fromString("\\crampedclap{#}"),
Suggestion.fromString("\\crampedllap{#}"),
Suggestion.fromString("\\crampedrlap{#}"),
Suggestion.fromString("\\crampedsubstack{#}"),
Suggestion.fromString("\\csc"),
Suggestion.fromString("\\cssId{#}{#}"),
Suggestion.fromString("\\cup"),
Suggestion.fromString("\\Cup"),
Suggestion.fromString("\\curlyeqprec"),
Suggestion.fromString("\\curlyeqsucc"),
Suggestion.fromString("\\curlyvee"),
Suggestion.fromString("\\curlywedge"),
Suggestion.fromString("\\curvearrowleft"),
Suggestion.fromString("\\curvearrowright"),
Suggestion.fromString("\\dagger"),
Suggestion.fromString("\\daleth"),
Suggestion.fromString("\\dashleftarrow"),
Suggestion.fromString("\\dashrightarrow"),
Suggestion.fromString("\\dashv"),
Suggestion.fromString("\\dbinom{#}{#}"),
Suggestion.fromString("\\dblcolon"),
Suggestion.fromString("\\ddagger"),
Suggestion.fromString("\\ddddot{#}"),
Suggestion.fromString("\\dddot{#}"),
Suggestion.fromString("\\ddot{#}"),
Suggestion.fromString("\\ddots"),
Suggestion.fromString("\\DeclareMathOperator{#}{#}"),
Suggestion.fromString("\\DeclarePairedDelimiters{#}{#}{#}"),
Suggestion.fromString("\\DeclarePairedDelimitersX{#}{#}{#}{#}"),
Suggestion.fromString("\\DeclarePairedDelimitersXPP{#}{#}{#}{#}{#}{#}"),
Suggestion.fromString("\\deg"),
Suggestion.fromString("\\degree"),
Suggestion.fromString("\\delta"),
Suggestion.fromString("\\Delta"),
Suggestion.fromString("\\det"),
Suggestion.fromString("\\dfrac{#}{#}"),
Suggestion.fromString("\\diagdown"),
Suggestion.fromString("\\diagup"),
Suggestion.fromString("\\diamond"),
Suggestion.fromString("\\Diamond"),
Suggestion.fromString("\\diamondsuit"),
Suggestion.fromString("\\digamma"),
Suggestion.fromString("\\dim"),
Suggestion.fromString("\\displaylines{#}"),
Suggestion.fromString("\\displaystyle"),
Suggestion.fromString("\\div"),
Suggestion.fromString("\\divideontimes"),
Suggestion.fromString("\\divsymbol"),
Suggestion.fromString("\\dot{#}"),
Suggestion.fromString("\\doteq"),
Suggestion.fromString("\\Doteq"),
Suggestion.fromString("\\doteqdot"),
Suggestion.fromString("\\dotplus"),
Suggestion.fromString("\\dots"),
Suggestion.fromString("\\dotsb"),
Suggestion.fromString("\\dotsc"),
Suggestion.fromString("\\dotsi"),
Suggestion.fromString("\\dotsm"),
Suggestion.fromString("\\dotso"),
Suggestion.fromString("\\doublebarwedge"),
Suggestion.fromString("\\doublecap"),
Suggestion.fromString("\\doublecup"),
Suggestion.fromString("\\downarrow"),
Suggestion.fromString("\\Downarrow"),
Suggestion.fromString("\\downdownarrows"),
Suggestion.fromString("\\downharpoonleft"),
Suggestion.fromString("\\downharpoonright"),
Suggestion.fromString("\\ell"),
Suggestion.fromString("\\empheqbiglangle"),
Suggestion.fromString("\\empheqbiglbrace"),
Suggestion.fromString("\\empheqbiglbrack"),
Suggestion.fromString("\\empheqbiglceil"),
Suggestion.fromString("\\empheqbiglfloor"),
Suggestion.fromString("\\empheqbiglparen"),
Suggestion.fromString("\\empheqbiglvert"),
Suggestion.fromString("\\empheqbiglVert"),
Suggestion.fromString("\\empheqbigrangle"),
Suggestion.fromString("\\empheqbigrbrace"),
Suggestion.fromString("\\empheqbigrbrack"),
Suggestion.fromString("\\empheqbigrceil"),
Suggestion.fromString("\\empheqbigrfloor"),
Suggestion.fromString("\\empheqbigrparen"),
Suggestion.fromString("\\empheqbigrvert"),
Suggestion.fromString("\\empheqbigrVert"),
Suggestion.fromString("\\empheqlangle"),
Suggestion.fromString("\\empheqlbrace"),
Suggestion.fromString("\\empheqlbrack"),
Suggestion.fromString("\\empheqlceil"),
Suggestion.fromString("\\empheqlfloor"),
Suggestion.fromString("\\empheqlparen"),
Suggestion.fromString("\\empheqlvert"),
Suggestion.fromString("\\empheqlVert"),
Suggestion.fromString("\\empheqrangle"),
Suggestion.fromString("\\empheqrbrace"),
Suggestion.fromString("\\empheqrbrack"),
Suggestion.fromString("\\empheqrceil"),
Suggestion.fromString("\\empheqrfloor"),
Suggestion.fromString("\\empheqrparen"),
Suggestion.fromString("\\empheqrvert"),
Suggestion.fromString("\\empheqrVert"),
Suggestion.fromString("\\emptyset"),
Suggestion.fromString("\\enclose{#}{#}"),
Suggestion.fromString("\\enspace"),
Suggestion.fromString("\\epsilon"),
Suggestion.fromString("\\eqalign{#}"),
Suggestion.fromString("\\eqalignno{#}"),
Suggestion.fromString("\\eqcirc"),
Suggestion.fromString("\\eqcolon"),
Suggestion.fromString("\\Eqcolon"),
Suggestion.fromString("\\eqqcolon"),
Suggestion.fromString("\\Eqqcolon"),
Suggestion.fromString("\\eqref{#}"),
Suggestion.fromString("\\eqsim"),
Suggestion.fromString("\\eqslantgtr"),
Suggestion.fromString("\\eqslantless"),
Suggestion.fromString("\\equiv"),
Suggestion.fromString("\\eta"),
Suggestion.fromString("\\eth"),
Suggestion.fromString("\\exists"),
Suggestion.fromString("\\exp"),
Suggestion.fromString("\\fallingdotseq"),
Suggestion.fromString("\\fbox{#}"),
Suggestion.fromString("\\fCenter"),
Suggestion.fromString("\\fcolorbox{#}{#}{#}"),
Suggestion.fromString("\\Finv"),
Suggestion.fromString("\\flat"),
Suggestion.fromString("\\forall"),
Suggestion.fromString("\\frac{#}{#}"),
Suggestion.fromString("\\frak"),
Suggestion.fromString("\\framebox{#}"),
Suggestion.fromString("\\frown"),
Suggestion.fromString("\\Game"),
Suggestion.fromString("\\gamma"),
Suggestion.fromString("\\Gamma"),
Suggestion.fromString("\\gcd"),
Suggestion.fromString("\\ge"),
Suggestion.fromString("\\geq"),
Suggestion.fromString("\\geqq"),
Suggestion.fromString("\\geqslant"),
Suggestion.fromString("\\gets"),
Suggestion.fromString("\\gg"),
Suggestion.fromString("\\ggg"),
Suggestion.fromString("\\gggtr"),
Suggestion.fromString("\\gimel"),
Suggestion.fromString("\\gnapprox"),
Suggestion.fromString("\\gneq"),
Suggestion.fromString("\\gneqq"),
Suggestion.fromString("\\gnsim"),
Suggestion.fromString("\\grave{#}"),
Suggestion.fromString("\\gt"),
Suggestion.fromString("\\gtrapprox"),
Suggestion.fromString("\\gtrdot"),
Suggestion.fromString("\\gtreqless"),
Suggestion.fromString("\\gtreqqless"),
Suggestion.fromString("\\gtrless"),
Suggestion.fromString("\\gtrsim"),
Suggestion.fromString("\\gvertneqq"),
Suggestion.fromString("\\hat{#}"),
Suggestion.fromString("\\hbar"),
Suggestion.fromString("\\hbox{#}"),
Suggestion.fromString("\\heartsuit"),
Suggestion.fromString("\\hline"),
Suggestion.fromString("\\hom"),
Suggestion.fromString("\\hookleftarrow"),
Suggestion.fromString("\\hookrightarrow"),
Suggestion.fromString("\\hphantom{#}"),
Suggestion.fromString("\\href{#}{#}"),
Suggestion.fromString("\\hslash"),
Suggestion.fromString("\\huge"),
Suggestion.fromString("\\Huge"),
Suggestion.fromString("\\idotsint"),
Suggestion.fromString("\\iff"),
Suggestion.fromString("\\iiiint"),
Suggestion.fromString("\\iiint"),
Suggestion.fromString("\\iint"),
Suggestion.fromString("\\Im"),
Suggestion.fromString("\\imath"),
Suggestion.fromString("\\impliedby"),
Suggestion.fromString("\\implies"),
Suggestion.fromString("\\in"),
Suggestion.fromString("\\inf"),
Suggestion.fromString("\\infty"),
Suggestion.fromString("\\injlim"),
Suggestion.fromString("\\int"),
Suggestion.fromString("\\int^{#}_{#}"),
Suggestion.fromString("\\intercal"),
Suggestion.fromString("\\intop"),
Suggestion.fromString("\\iota"),
Suggestion.fromString("\\it"),
Suggestion.fromString("\\jmath"),
Suggestion.fromString("\\Join"),
Suggestion.fromString("\\kappa"),
Suggestion.fromString("\\ker"),
Suggestion.fromString("\\ket{#}"),
Suggestion.fromString("\\Ket{#}"),
Suggestion.fromString("\\ketbra{#}{#}"),
Suggestion.fromString("\\Ketbra{#}{#}"),
Suggestion.fromString("\\label{#}"),
Suggestion.fromString("\\lambda"),
Suggestion.fromString("\\Lambda"),
Suggestion.fromString("\\land"),
Suggestion.fromString("\\langle"),
Suggestion.fromString("\\large"),
Suggestion.fromString("\\Large"),
Suggestion.fromString("\\LARGE"),
Suggestion.fromString("\\LaTeX"),
Suggestion.fromString("\\lbrace"),
Suggestion.fromString("\\lbrack"),
Suggestion.fromString("\\lceil"),
Suggestion.fromString("\\ldots"),
Suggestion.fromString("\\ldotp"),
Suggestion.fromString("\\le"),
Suggestion.fromString("\\leadsto"),
Suggestion.fromString("\\Leftarrow"),
Suggestion.fromString("\\leftarrow"),
Suggestion.fromString("\\leftarrowtail"),
Suggestion.fromString("\\leftharpoondown"),
Suggestion.fromString("\\leftharpoonup"),
Suggestion.fromString("\\leftleftarrows"),
Suggestion.fromString("\\Leftrightarrow"),
Suggestion.fromString("\\leftrightarrow"),
Suggestion.fromString("\\leftrightarrows"),
Suggestion.fromString("\\leftrightharpoons"),
Suggestion.fromString("\\leftrightsquigarrow"),
Suggestion.fromString("\\leftthreetimes"),
Suggestion.fromString("\\leq"),
Suggestion.fromString("\\leqalignno{#}"),
Suggestion.fromString("\\leqq"),
Suggestion.fromString("\\leqslant"),
Suggestion.fromString("\\lessapprox"),
Suggestion.fromString("\\lessdot"),
Suggestion.fromString("\\lesseqgtr"),
Suggestion.fromString("\\lesseqqgtr"),
Suggestion.fromString("\\lessgtr"),
Suggestion.fromString("\\lesssim"),
Suggestion.fromString("\\lfloor"),
Suggestion.fromString("\\lg"),
Suggestion.fromString("\\lgroup"),
Suggestion.fromString("\\lhd"),
Suggestion.fromString("\\lim"),
Suggestion.fromString("\\lim_{#}"),
Suggestion.fromString("\\liminf"),
Suggestion.fromString("\\limsup"),
Suggestion.fromString("\\ll"),
Suggestion.fromString("\\llap{#}"),
Suggestion.fromString("\\llcorner"),
Suggestion.fromString("\\Lleftarrow"),
Suggestion.fromString("\\lll"),
Suggestion.fromString("\\llless"),
Suggestion.fromString("\\lmoustache"),
Suggestion.fromString("\\ln"),
Suggestion.fromString("\\lnapprox"),
Suggestion.fromString("\\lneq"),
Suggestion.fromString("\\lneqq"),
Suggestion.fromString("\\lnot"),
Suggestion.fromString("\\lnsim"),
Suggestion.fromString("\\log"),
Suggestion.fromString("\\longleftarrow"),
Suggestion.fromString("\\Longleftarrow"),
Suggestion.fromString("\\Longleftrightarrow"),
Suggestion.fromString("\\longleftrightarrow"),
Suggestion.fromString("\\longleftrightarrows"),
Suggestion.fromString("\\longLeftrightharpoons"),
Suggestion.fromString("\\longmapsto"),
Suggestion.fromString("\\longrightarrow"),
Suggestion.fromString("\\Longrightarrow"),
Suggestion.fromString("\\longrightleftharpoons"),
Suggestion.fromString("\\longRightleftharpoons"),
Suggestion.fromString("\\looparrowleft"),
Suggestion.fromString("\\looparrowright"),
Suggestion.fromString("\\lor"),
Suggestion.fromString("\\lozenge"),
Suggestion.fromString("\\lparen"),
Suggestion.fromString("\\lrcorner"),
Suggestion.fromString("\\Lsh"),
Suggestion.fromString("\\lt"),
Suggestion.fromString("\\ltimes"),
Suggestion.fromString("\\lvert"),
Suggestion.fromString("\\lVert"),
Suggestion.fromString("\\lvertneqq"),
Suggestion.fromString("\\maltese"),
Suggestion.fromString("\\mapsto"),
Suggestion.fromString("\\mathbb{#}"),
Suggestion.fromString("\\mathbb{R}"),
Suggestion.fromString("\\mathbb{N}"),
Suggestion.fromString("\\mathbb{C}"),
Suggestion.fromString("\\mathbb{Z}"),
Suggestion.fromString("\\mathbb{Q}"),
Suggestion.fromString("\\mathbf{#}"),
Suggestion.fromString("\\mathbfcal{#}"),
Suggestion.fromString("\\mathbffrak{#}"),
Suggestion.fromString("\\mathbfit{#}"),
Suggestion.fromString("\\mathbfscr{#}"),
Suggestion.fromString("\\mathbfsf{#}"),
Suggestion.fromString("\\mathbfsfit{#}"),
Suggestion.fromString("\\mathbfsfup{#}"),
Suggestion.fromString("\\mathbfup{#}"),
Suggestion.fromString("\\mathbin{#}"),
Suggestion.fromString("\\mathcal{#}"),
Suggestion.fromString("\\mathchoice{#}{#}{#}{#}"),
Suggestion.fromString("\\mathclap{#}"),
Suggestion.fromString("\\mathclose{#}"),
Suggestion.fromString("\\mathfrak{#}"),
Suggestion.fromString("\\mathinner{#}"),
Suggestion.fromString("\\mathit{#}"),
Suggestion.fromString("\\mathllap{#}"),
Suggestion.fromString("\\mathmakebox{#}"),
Suggestion.fromString("\\mathmbox{#}"),
Suggestion.fromString("\\mathnormal{#}"),
Suggestion.fromString("\\mathop{#}"),
Suggestion.fromString("\\mathopen{#}"),
Suggestion.fromString("\\mathord{#}"),
Suggestion.fromString("\\mathpunct{#}"),
Suggestion.fromString("\\mathrel{#}"),
Suggestion.fromString("\\mathring{#}"),
Suggestion.fromString("\\mathrlap{#}"),
Suggestion.fromString("\\mathrm{#}"),
Suggestion.fromString("\\mathscr{#}"),
Suggestion.fromString("\\mathsf{#}"),
Suggestion.fromString("\\mathsfit{#}"),
Suggestion.fromString("\\mathsfup{#}"),
Suggestion.fromString("\\mathstrut"),
Suggestion.fromString("\\mathtip{#}{#}"),
Suggestion.fromString("\\mathtt{#}"),
Suggestion.fromString("\\mathup{#}"),
Suggestion.fromString("\\max"),
Suggestion.fromString("\\mbox{#}"),
Suggestion.fromString("\\measuredangle"),
Suggestion.fromString("\\mho"),
Suggestion.fromString("\\micro"),
Suggestion.fromString("\\mid"),
Suggestion.fromString("\\min"),
Suggestion.fromString("\\mit"),
Suggestion.fromString("\\mod{#}"),
Suggestion.fromString("\\models"),
Suggestion.fromString("\\mp"),
Suggestion.fromString("\\MTThinColon"),
Suggestion.fromString("\\mu"),
Suggestion.fromString("\\multimap"),
Suggestion.fromString("\\nabla"),
Suggestion.fromString("\\natural"),
Suggestion.fromString("\\ncong"),
Suggestion.fromString("\\ndownarrow"),
Suggestion.fromString("\\ne"),
Suggestion.fromString("\\nearrow"),
Suggestion.fromString("\\neg"),
Suggestion.fromString("\\negmedspace"),
Suggestion.fromString("\\negthickspace"),
Suggestion.fromString("\\negthinspace"),
Suggestion.fromString("\\neq"),
Suggestion.fromString("\\newcommand{#}{#}"),
Suggestion.fromString("\\newenvironment{#}{#}{#}"),
Suggestion.fromString("\\newline"),
Suggestion.fromString("\\newtagform{#}{#}{#}"),
Suggestion.fromString("\\nexists"),
Suggestion.fromString("\\ngeq"),
Suggestion.fromString("\\ngeqq"),
Suggestion.fromString("\\ngeqslant"),
Suggestion.fromString("\\ngtr"),
Suggestion.fromString("\\ni"),
Suggestion.fromString("\\nleftarrow"),
Suggestion.fromString("\\nLeftarrow"),
Suggestion.fromString("\\nleftrightarrow"),
Suggestion.fromString("\\nLeftrightarrow"),
Suggestion.fromString("\\nleq"),
Suggestion.fromString("\\nleqq"),
Suggestion.fromString("\\nleqslant"),
Suggestion.fromString("\\nless"),
Suggestion.fromString("\\nmid"),
Suggestion.fromString("\\nobreakspace"),
Suggestion.fromString("\\nonscript"),
Suggestion.fromString("\\nonumber"),
Suggestion.fromString("\\normalsize"),
Suggestion.fromString("\\not"),
Suggestion.fromString("\\notag"),
Suggestion.fromString("\\notChar"),
Suggestion.fromString("\\notin"),
Suggestion.fromString("\\nparallel"),
Suggestion.fromString("\\nprec"),
Suggestion.fromString("\\npreceq"),
Suggestion.fromString("\\nrightarrow"),
Suggestion.fromString("\\nRightarrow"),
Suggestion.fromString("\\nshortmid"),
Suggestion.fromString("\\nshortparallel"),
Suggestion.fromString("\\nsim"),
Suggestion.fromString("\\nsubseteq"),
Suggestion.fromString("\\nsubseteqq"),
Suggestion.fromString("\\nsucc"),
Suggestion.fromString("\\nsucceq"),
Suggestion.fromString("\\nsupseteq"),
Suggestion.fromString("\\nsupseteqq"),
Suggestion.fromString("\\ntriangleleft"),
Suggestion.fromString("\\ntrianglelefteq"),
Suggestion.fromString("\\ntriangleright"),
Suggestion.fromString("\\ntrianglerighteq"),
Suggestion.fromString("\\nu"),
Suggestion.fromString("\\nuparrow"),
Suggestion.fromString("\\nvdash"),
Suggestion.fromString("\\nvDash"),
Suggestion.fromString("\\nVdash"),
Suggestion.fromString("\\nVDash"),
Suggestion.fromString("\\nwarrow"),
Suggestion.fromString("\\odot"),
Suggestion.fromString("\\ohm"),
Suggestion.fromString("\\oint"),
Suggestion.fromString("\\oldstyle"),
Suggestion.fromString("\\omega"),
Suggestion.fromString("\\Omega"),
Suggestion.fromString("\\omicron"),
Suggestion.fromString("\\ominus"),
Suggestion.fromString("\\operatorname{#}"),
Suggestion.fromString("\\oplus"),
Suggestion.fromString("\\ordinarycolon"),
Suggestion.fromString("\\oslash"),
Suggestion.fromString("\\otimes"),
Suggestion.fromString("\\over"),
Suggestion.fromString("\\overbrace{#}"),
Suggestion.fromString("\\overbracket{#}"),
Suggestion.fromString("\\overleftarrow{#}"),
Suggestion.fromString("\\overleftrightarrow{#}"),
Suggestion.fromString("\\overline{#}"),
Suggestion.fromString("\\overparen{#}"),
Suggestion.fromString("\\overrightarrow{#}"),
Suggestion.fromString("\\overset{#}{#}"),
Suggestion.fromString("\\overunderset{#}{#}{#}"),
Suggestion.fromString("\\owns"),
Suggestion.fromString("\\parallel"),
Suggestion.fromString("\\partial"),
Suggestion.fromString("\\perp"),
Suggestion.fromString("\\perthousand"),
Suggestion.fromString("\\phantom{#}"),
Suggestion.fromString("\\phi"),
Suggestion.fromString("\\Phi"),
Suggestion.fromString("\\pi"),
Suggestion.fromString("\\Pi"),
Suggestion.fromString("\\pitchfork"),
Suggestion.fromString("\\pm"),
Suggestion.fromString("\\pmb{#}"),
Suggestion.fromString("\\pmod{#}"),
Suggestion.fromString("\\pod{#}"),
Suggestion.fromString("\\Pr"),
Suggestion.fromString("\\prec"),
Suggestion.fromString("\\precapprox"),
Suggestion.fromString("\\preccurlyeq"),
Suggestion.fromString("\\preceq"),
Suggestion.fromString("\\precnapprox"),
Suggestion.fromString("\\precneqq"),
Suggestion.fromString("\\precnsim"),
Suggestion.fromString("\\precsim"),
Suggestion.fromString("\\prescript{#}{#}{#}"),
Suggestion.fromString("\\prime"),
Suggestion.fromString("\\prod"),
Suggestion.fromString("\\prod^{#}_{#}"),
Suggestion.fromString("\\projlim"),
Suggestion.fromString("\\propto"),
Suggestion.fromString("\\psi"),
Suggestion.fromString("\\Psi"),
Suggestion.fromString("\\qquad"),
Suggestion.fromString("\\quad"),
Suggestion.fromString("\\rangle"),
Suggestion.fromString("\\rbrace"),
Suggestion.fromString("\\rbrack"),
Suggestion.fromString("\\rceil"),
Suggestion.fromString("\\Re"),
Suggestion.fromString("\\ref{#}"),
Suggestion.fromString("\\refeq{#}"),
Suggestion.fromString("\\renewcommand{#}{#}"),
Suggestion.fromString("\\renewenvironment{#}{#}{#}"),
Suggestion.fromString("\\renewtagform{#}{#}{#}"),
Suggestion.fromString("\\restriction"),
Suggestion.fromString("\\rfloor"),
Suggestion.fromString("\\rgroup"),
Suggestion.fromString("\\rhd"),
Suggestion.fromString("\\rho"),
Suggestion.fromString("\\Rightarrow"),
Suggestion.fromString("\\rightarrow"),
Suggestion.fromString("\\rightarrowtail"),
Suggestion.fromString("\\rightharpoondown"),
Suggestion.fromString("\\rightharpoonup"),
Suggestion.fromString("\\rightleftarrows"),
Suggestion.fromString("\\rightleftharpoons"),
Suggestion.fromString("\\rightrightarrows"),
Suggestion.fromString("\\rightsquigarrow"),
Suggestion.fromString("\\rightthreetimes"),
Suggestion.fromString("\\risingdotseq"),
Suggestion.fromString("\\rlap{#}"),
Suggestion.fromString("\\rm"),
Suggestion.fromString("\\rmoustache"),
Suggestion.fromString("\\rparen"),
Suggestion.fromString("\\Rrightarrow"),
Suggestion.fromString("\\Rsh"),
Suggestion.fromString("\\rtimes"),
Suggestion.fromString("\\rvert"),
Suggestion.fromString("\\rVert"),
Suggestion.fromString("\\S"),
Suggestion.fromString("\\scr"),
Suggestion.fromString("\\scriptscriptstyle"),
Suggestion.fromString("\\scriptsize"),
Suggestion.fromString("\\scriptstyle"),
Suggestion.fromString("\\searrow"),
Suggestion.fromString("\\sec"),
Suggestion.fromString("\\set{#}"),
Suggestion.fromString("\\Set{#}"),
Suggestion.fromString("\\setminus"),
Suggestion.fromString("\\sf"),
Suggestion.fromString("\\sharp"),
Suggestion.fromString("\\shortmid"),
Suggestion.fromString("\\shortparallel"),
Suggestion.fromString("\\sideset{#}{#}{#}"),
Suggestion.fromString("\\sigma"),
Suggestion.fromString("\\Sigma"),
Suggestion.fromString("\\sim"),
Suggestion.fromString("\\simeq"),
Suggestion.fromString("\\sin"),
Suggestion.fromString("\\sinh"),
Suggestion.fromString("\\skew{#}{#}{#}"),
Suggestion.fromString("\\SkipLimits"),
Suggestion.fromString("\\small"),
Suggestion.fromString("\\smallfrown"),
Suggestion.fromString("\\smallint"),
Suggestion.fromString("\\smallsetminus"),
Suggestion.fromString("\\smallsmile"),
Suggestion.fromString("\\smash{#}"),
Suggestion.fromString("\\smile"),
Suggestion.fromString("\\space"),
Suggestion.fromString("\\spadesuit"),
Suggestion.fromString("\\sphericalangle"),
Suggestion.fromString("\\splitdfrac{#}{#}"),
Suggestion.fromString("\\splitfrac{#}{#}"),
Suggestion.fromString("\\sqcap"),
Suggestion.fromString("\\sqcup"),
Suggestion.fromString("\\sqrt{#}"),
Suggestion.fromString("\\sqsubset"),
Suggestion.fromString("\\sqsubseteq"),
Suggestion.fromString("\\sqsupset"),
Suggestion.fromString("\\sqsupseteq"),
Suggestion.fromString("\\square"),
Suggestion.fromString("\\stackbin{#}{#}"),
Suggestion.fromString("\\stackrel{#}{#}"),
Suggestion.fromString("\\star"),
Suggestion.fromString("\\strut"),
Suggestion.fromString("\\style{#}{#}"),
Suggestion.fromString("\\subset"),
Suggestion.fromString("\\Subset"),
Suggestion.fromString("\\subseteq"),
Suggestion.fromString("\\subseteqq"),
Suggestion.fromString("\\subsetneq"),
Suggestion.fromString("\\subsetneqq"),
Suggestion.fromString("\\substack{#}"),
Suggestion.fromString("\\succ"),
Suggestion.fromString("\\succapprox"),
Suggestion.fromString("\\succcurlyeq"),
Suggestion.fromString("\\succeq"),
Suggestion.fromString("\\succnapprox"),
Suggestion.fromString("\\succneqq"),
Suggestion.fromString("\\succnsim"),
Suggestion.fromString("\\succsim"),
Suggestion.fromString("\\sum"),
Suggestion.fromString("\\sum^{#}_{#}"),
Suggestion.fromString("\\sup"),
Suggestion.fromString("\\supset"),
Suggestion.fromString("\\Supset"),
Suggestion.fromString("\\supseteq"),
Suggestion.fromString("\\supseteqq"),
Suggestion.fromString("\\supsetneq"),
Suggestion.fromString("\\supsetneqq"),
Suggestion.fromString("\\surd"),
Suggestion.fromString("\\swarrow"),
Suggestion.fromString("\\symbb{#}"),
Suggestion.fromString("\\symbf{#}"),
Suggestion.fromString("\\symbfcal{#}"),
Suggestion.fromString("\\symbffrak{#}"),
Suggestion.fromString("\\symbfit{#}"),
Suggestion.fromString("\\symbfscr{#}"),
Suggestion.fromString("\\symbfsf{#}"),
Suggestion.fromString("\\symbfsfit{#}"),
Suggestion.fromString("\\symbfsfup{#}"),
Suggestion.fromString("\\symbfup{#}"),
Suggestion.fromString("\\symcal{#}"),
Suggestion.fromString("\\symfrak{#}"),
Suggestion.fromString("\\symit{#}"),
Suggestion.fromString("\\symnormal{#}"),
Suggestion.fromString("\\symrm{#}"),
Suggestion.fromString("\\symscr{#}"),
Suggestion.fromString("\\symsf{#}"),
Suggestion.fromString("\\symsfit{#}"),
Suggestion.fromString("\\symsfup{#}"),
Suggestion.fromString("\\symtt{#}"),
Suggestion.fromString("\\symup{#}"),
Suggestion.fromString("\\tag{#}"),
Suggestion.fromString("\\tan"),
Suggestion.fromString("\\tanh"),
Suggestion.fromString("\\tau"),
Suggestion.fromString("\\tbinom{#}{#}"),
Suggestion.fromString("\\TeX"),
Suggestion.fromString("\\text{#}"),
Suggestion.fromString("\\textacutedbl"),
Suggestion.fromString("\\textasciiacute"),
Suggestion.fromString("\\textasciibreve"),
Suggestion.fromString("\\textasciicaron"),
Suggestion.fromString("\\textasciicircum"),
Suggestion.fromString("\\textasciidieresis"),
Suggestion.fromString("\\textasciimacron"),
Suggestion.fromString("\\textasciitilde"),
Suggestion.fromString("\\textasteriskcentered"),
Suggestion.fromString("\\textbackslash"),
Suggestion.fromString("\\textbaht"),
Suggestion.fromString("\\textbar"),
Suggestion.fromString("\\textbardbl"),
Suggestion.fromString("\\textbf{#}"),
Suggestion.fromString("\\textbigcircle"),
Suggestion.fromString("\\textblank"),
Suggestion.fromString("\\textborn"),
Suggestion.fromString("\\textbraceleft"),
Suggestion.fromString("\\textbraceright"),
Suggestion.fromString("\\textbrokenbar"),
Suggestion.fromString("\\textbullet"),
Suggestion.fromString("\\textcelsius"),
Suggestion.fromString("\\textcent"),
Suggestion.fromString("\\textcentoldstyle"),
Suggestion.fromString("\\textcircledP"),
Suggestion.fromString("\\textclap{#}"),
Suggestion.fromString("\\textcolonmonetary"),
Suggestion.fromString("\\textcolor{#}{#}"),
Suggestion.fromString("\\textcompwordmark"),
Suggestion.fromString("\\textcopyleft"),
Suggestion.fromString("\\textcopyright"),
Suggestion.fromString("\\textcurrency"),
Suggestion.fromString("\\textdagger"),
Suggestion.fromString("\\textdaggerdbl"),
Suggestion.fromString("\\textdegree"),
Suggestion.fromString("\\textdied"),
Suggestion.fromString("\\textdiscount"),
Suggestion.fromString("\\textdiv"),
Suggestion.fromString("\\textdivorced"),
Suggestion.fromString("\\textdollar"),
Suggestion.fromString("\\textdollaroldstyle"),
Suggestion.fromString("\\textdong"),
Suggestion.fromString("\\textdownarrow"),
Suggestion.fromString("\\texteightoldstyle"),
Suggestion.fromString("\\textellipsis"),
Suggestion.fromString("\\textemdash"),
Suggestion.fromString("\\textendash"),
Suggestion.fromString("\\textestimated"),
Suggestion.fromString("\\texteuro"),
Suggestion.fromString("\\textexclamdown"),
Suggestion.fromString("\\textfiveoldstyle"),
Suggestion.fromString("\\textflorin"),
Suggestion.fromString("\\textfouroldstyle"),
Suggestion.fromString("\\textfractionsolidus"),
Suggestion.fromString("\\textgravedbl"),
Suggestion.fromString("\\textgreater"),
Suggestion.fromString("\\textguarani"),
Suggestion.fromString("\\textinterrobang"),
Suggestion.fromString("\\textinterrobangdown"),
Suggestion.fromString("\\textit{#}"),
Suggestion.fromString("\\textlangle"),
Suggestion.fromString("\\textlbrackdbl"),
Suggestion.fromString("\\textleftarrow"),
Suggestion.fromString("\\textless"),
Suggestion.fromString("\\textlira"),
Suggestion.fromString("\\textllap{#}"),
Suggestion.fromString("\\textlnot"),
Suggestion.fromString("\\textlquill"),
Suggestion.fromString("\\textmarried"),
Suggestion.fromString("\\textmho"),
Suggestion.fromString("\\textminus"),
Suggestion.fromString("\\textmu"),
Suggestion.fromString("\\textmusicalnote"),
Suggestion.fromString("\\textnaira"),
Suggestion.fromString("\\textnineoldstyle"),
Suggestion.fromString("\\textnormal{#}"),
Suggestion.fromString("\\textnumero"),
Suggestion.fromString("\\textohm"),
Suggestion.fromString("\\textonehalf"),
Suggestion.fromString("\\textoneoldstyle"),
Suggestion.fromString("\\textonequarter"),
Suggestion.fromString("\\textonesuperior"),
Suggestion.fromString("\\textopenbullet"),
Suggestion.fromString("\\textordfeminine"),
Suggestion.fromString("\\textordmasculine"),
Suggestion.fromString("\\textparagraph"),
Suggestion.fromString("\\textperiodcentered"),
Suggestion.fromString("\\textpertenthousand"),
Suggestion.fromString("\\textperthousand"),
Suggestion.fromString("\\textpeso"),
Suggestion.fromString("\\textpm"),
Suggestion.fromString("\\textquestiondown"),
Suggestion.fromString("\\textquotedblleft"),
Suggestion.fromString("\\textquotedblright"),
Suggestion.fromString("\\textquoteleft"),
Suggestion.fromString("\\textquoteright"),
Suggestion.fromString("\\textrangle"),
Suggestion.fromString("\\textrbrackdbl"),
Suggestion.fromString("\\textrecipe"),
Suggestion.fromString("\\textreferencemark"),
Suggestion.fromString("\\textregistered"),
Suggestion.fromString("\\textrightarrow"),
Suggestion.fromString("\\textrlap{#}"),
Suggestion.fromString("\\textrm{#}"),
Suggestion.fromString("\\textrquill"),
Suggestion.fromString("\\textsection"),
Suggestion.fromString("\\textservicemark"),
Suggestion.fromString("\\textsevenoldstyle"),
Suggestion.fromString("\\textsf{#}"),
Suggestion.fromString("\\textsixoldstyle"),
Suggestion.fromString("\\textsterling"),
Suggestion.fromString("\\textstyle"),
Suggestion.fromString("\\textsurd"),
Suggestion.fromString("\\textthreeoldstyle"),
Suggestion.fromString("\\textthreequarters"),
Suggestion.fromString("\\textthreesuperior"),
Suggestion.fromString("\\texttildelow"),
Suggestion.fromString("\\texttimes"),
Suggestion.fromString("\\texttip{#}{#}"),
Suggestion.fromString("\\texttrademark"),
Suggestion.fromString("\\texttt{#}"),
Suggestion.fromString("\\texttwooldstyle"),
Suggestion.fromString("\\texttwosuperior"),
Suggestion.fromString("\\textunderscore"),
Suggestion.fromString("\\textup{#}"),
Suggestion.fromString("\\textuparrow"),
Suggestion.fromString("\\textvisiblespace"),
Suggestion.fromString("\\textwon"),
Suggestion.fromString("\\textyen"),
Suggestion.fromString("\\textzerooldstyle"),
Suggestion.fromString("\\tfrac{#}{#}"),
Suggestion.fromString("\\therefore"),
Suggestion.fromString("\\theta"),
Suggestion.fromString("\\Theta"),
Suggestion.fromString("\\thickapprox"),
Suggestion.fromString("\\thicksim"),
Suggestion.fromString("\\thinspace"),
Suggestion.fromString("\\tilde{#}"),
Suggestion.fromString("\\times"),
Suggestion.fromString("\\tiny"),
Suggestion.fromString("\\Tiny"),
Suggestion.fromString("\\to"),
Suggestion.fromString("\\top"),
Suggestion.fromString("\\triangle"),
Suggestion.fromString("\\triangledown"),
Suggestion.fromString("\\triangleleft"),
Suggestion.fromString("\\trianglelefteq"),
Suggestion.fromString("\\triangleq"),
Suggestion.fromString("\\triangleright"),
Suggestion.fromString("\\trianglerighteq"),
Suggestion.fromString("\\tripledash"),
Suggestion.fromString("\\tt"),
Suggestion.fromString("\\twoheadleftarrow"),
Suggestion.fromString("\\twoheadrightarrow"),
Suggestion.fromString("\\ulcorner"),
Suggestion.fromString("\\underbrace{#}"),
Suggestion.fromString("\\underbracket{#}"),
Suggestion.fromString("\\underleftarrow{#}"),
Suggestion.fromString("\\underleftrightarrow{#}"),
Suggestion.fromString("\\underline{#}"),
Suggestion.fromString("\\underparen{#}"),
Suggestion.fromString("\\underrightarrow{#}"),
Suggestion.fromString("\\underset{#}{#}"),
Suggestion.fromString("\\unicode{#}"),
Suggestion.fromString("\\unlhd"),
Suggestion.fromString("\\unrhd"),
Suggestion.fromString("\\upalpha"),
Suggestion.fromString("\\uparrow"),
Suggestion.fromString("\\Uparrow"),
Suggestion.fromString("\\upbeta"),
Suggestion.fromString("\\upchi"),
Suggestion.fromString("\\updelta"),
Suggestion.fromString("\\Updelta"),
Suggestion.fromString("\\updownarrow"),
Suggestion.fromString("\\Updownarrow"),
Suggestion.fromString("\\upepsilon"),
Suggestion.fromString("\\upeta"),
Suggestion.fromString("\\upgamma"),
Suggestion.fromString("\\Upgamma"),
Suggestion.fromString("\\upharpoonleft"),
Suggestion.fromString("\\upharpoonright"),
Suggestion.fromString("\\upiota"),
Suggestion.fromString("\\upkappa"),
Suggestion.fromString("\\uplambda"),
Suggestion.fromString("\\Uplambda"),
Suggestion.fromString("\\uplus"),
Suggestion.fromString("\\upmu"),
Suggestion.fromString("\\upnu"),
Suggestion.fromString("\\upomega"),
Suggestion.fromString("\\Upomega"),
Suggestion.fromString("\\upomicron"),
Suggestion.fromString("\\upphi"),
Suggestion.fromString("\\Upphi"),
Suggestion.fromString("\\uppi"),
Suggestion.fromString("\\Uppi"),
Suggestion.fromString("\\uppsi"),
Suggestion.fromString("\\Uppsi"),
Suggestion.fromString("\\uprho"),
Suggestion.fromString("\\upsigma"),
Suggestion.fromString("\\Upsigma"),
Suggestion.fromString("\\upsilon"),
Suggestion.fromString("\\Upsilon"),
Suggestion.fromString("\\uptau"),
Suggestion.fromString("\\uptheta"),
Suggestion.fromString("\\Uptheta"),
Suggestion.fromString("\\upuparrows"),
Suggestion.fromString("\\upupsilon"),
Suggestion.fromString("\\Upupsilon"),
Suggestion.fromString("\\upvarepsilon"),
Suggestion.fromString("\\upvarphi"),
Suggestion.fromString("\\upvarpi"),
Suggestion.fromString("\\upvarrho"),
Suggestion.fromString("\\upvarsigma"),
Suggestion.fromString("\\upvartheta"),
Suggestion.fromString("\\upxi"),
Suggestion.fromString("\\Upxi"),
Suggestion.fromString("\\upzeta"),
Suggestion.fromString("\\urcorner"),
Suggestion.fromString("\\usetagform{#}"),
Suggestion.fromString("\\varDelta"),
Suggestion.fromString("\\varepsilon"),
Suggestion.fromString("\\varGamma"),
Suggestion.fromString("\\varinjlim"),
Suggestion.fromString("\\varkappa"),
Suggestion.fromString("\\varLambda"),
Suggestion.fromString("\\varliminf"),
Suggestion.fromString("\\varlimsup"),
Suggestion.fromString("\\varnothing"),
Suggestion.fromString("\\varOmega"),
Suggestion.fromString("\\varphi"),
Suggestion.fromString("\\varPhi"),
Suggestion.fromString("\\varpi"),
Suggestion.fromString("\\varPi"),
Suggestion.fromString("\\varprojlim"),
Suggestion.fromString("\\varpropto"),
Suggestion.fromString("\\varPsi"),
Suggestion.fromString("\\varrho"),
Suggestion.fromString("\\varsigma"),
Suggestion.fromString("\\varSigma"),
Suggestion.fromString("\\varsubsetneq"),
Suggestion.fromString("\\varsubsetneqq"),
Suggestion.fromString("\\varsupsetneq"),
Suggestion.fromString("\\varsupsetneqq"),
Suggestion.fromString("\\vartheta"),
Suggestion.fromString("\\varTheta"),
Suggestion.fromString("\\vartriangle"),
Suggestion.fromString("\\vartriangleleft"),
Suggestion.fromString("\\vartriangleright"),
Suggestion.fromString("\\varUpsilon"),
Suggestion.fromString("\\varXi"),
Suggestion.fromString("\\vcenter{#}"),
Suggestion.fromString("\\vdash"),
Suggestion.fromString("\\vDash"),
Suggestion.fromString("\\Vdash"),
Suggestion.fromString("\\vdots"),
Suggestion.fromString("\\vec{#}"),
Suggestion.fromString("\\vee"),
Suggestion.fromString("\\veebar"),
Suggestion.fromString("\\Vert"),
Suggestion.fromString("\\vert"),
Suggestion.fromString("\\vphantom{#}"),
Suggestion.fromString("\\Vvdash"),
Suggestion.fromString("\\wedge"),
Suggestion.fromString("\\widehat{#}"),
Suggestion.fromString("\\widetilde{#}"),
Suggestion.fromString("\\wp"),
Suggestion.fromString("\\wr"),
Suggestion.fromString("\\xcancel{#}"),
Suggestion.fromString("\\xhookleftarrow{#}"),
Suggestion.fromString("\\xhookrightarrow{#}"),
Suggestion.fromString("\\xi"),
Suggestion.fromString("\\Xi"),
Suggestion.fromString("\\xleftarrow{#}"),
Suggestion.fromString("\\xLeftarrow{#}"),
Suggestion.fromString("\\xleftharpoondown{#}"),
Suggestion.fromString("\\xleftharpoonup{#}"),
Suggestion.fromString("\\xleftrightarrow{#}"),
Suggestion.fromString("\\xLeftrightarrow{#}"),
Suggestion.fromString("\\xleftrightharpoons{#}"),
Suggestion.fromString("\\xLeftrightharpoons{#}"),
Suggestion.fromString("\\xlongequal{#}"),
Suggestion.fromString("\\xmapsto{#}"),
Suggestion.fromString("\\xmathstrut{#}"),
Suggestion.fromString("\\xrightarrow{#}"),
Suggestion.fromString("\\xRightarrow{#}"),
Suggestion.fromString("\\xrightharpoondown{#}"),
Suggestion.fromString("\\xrightharpoonup{#}"),
Suggestion.fromString("\\xrightleftharpoons{#}"),
Suggestion.fromString("\\xRightleftharpoons{#}"),
Suggestion.fromString("\\xtofrom{#}"),
Suggestion.fromString("\\xtwoheadleftarrow{#}"),
Suggestion.fromString("\\xtwoheadrightarrow{#}"),
Suggestion.fromString("\\yen"),
Suggestion.fromString("\\zeta")
];
}
// src/provider/dictionary_provider.ts
var DictionaryProvider = class {
getSuggestions(context, settings) {
var _a, _b, _c;
if (!this.isEnabled(settings) || !context.query || context.query.length < settings.minWordTriggerLength)
return [];
const ignoreCase = settings.wordInsertionMode != "Match-Case & Replace" /* MATCH_CASE_REPLACE */;
let query = maybeLowerCase(context.query, ignoreCase);
const ignoreDiacritics = settings.ignoreDiacriticsWhenFiltering;
if (ignoreDiacritics)
query = removeDiacritics(query);
const firstChar = query.charAt(0);
const list = ignoreCase ? [(_a = this.wordMap.get(firstChar)) != null ? _a : [], (_b = this.wordMap.get(firstChar.toUpperCase())) != null ? _b : []] : [(_c = this.wordMap.get(firstChar)) != null ? _c : []];
if (ignoreDiacritics) {
for (let [key, value] of this.wordMap.entries()) {
let keyFirstChar = maybeLowerCase(key.charAt(0), ignoreCase);
if (removeDiacritics(keyFirstChar) === firstChar)
list.push(value);
}
}
if (!list || list.length < 1)
return [];
const result = [];
for (let el of list) {
filterMapIntoArray(
result,
el,
(s) => {
let match = maybeLowerCase(s, ignoreCase);
if (ignoreDiacritics)
match = removeDiacritics(match);
return match.startsWith(query);
},
settings.wordInsertionMode === "Ignore-Case & Append" /* IGNORE_CASE_APPEND */ ? (s) => Suggestion.fromString(context.query + s.substring(query.length, s.length)) : (s) => Suggestion.fromString(s)
);
}
return result.sort((a, b) => a.displayName.length - b.displayName.length);
}
};
var DIACRITICS_REGEX = /[\u0300-\u036f]/g;
function removeDiacritics(str) {
return str.normalize("NFD").replace(DIACRITICS_REGEX, "");
}
function filterMapIntoArray(array, iterable, predicate, map) {
for (let val of iterable) {
if (!predicate(val))
continue;
array.push(map(val));
}
}
// src/provider/word_list_provider.ts
var WORD_LISTS_FOLDER_PATH = "wordLists";
var NEW_LINE_REGEX2 = /\r?\n/;
var WordListSuggestionProvider = class extends DictionaryProvider {
constructor() {
super(...arguments);
this.wordMap = /* @__PURE__ */ new Map();
}
isEnabled(settings) {
return settings.wordListProviderEnabled;
}
async loadFromFiles(vault, settings) {
this.wordMap.clear();
const fileNames = await this.getRelativeFilePaths(vault);
for (let i = fileNames.length - 1; i >= 0; i--) {
const fileName = fileNames[i];
let data;
try {
data = await vault.adapter.read(fileName);
} catch (e) {
console.log("Completr: Unable to read " + fileName);
continue;
}
const lines = data.split(NEW_LINE_REGEX2);
for (let line of lines) {
if (line === "" || line.length < settings.minWordLength)
continue;
let list = this.wordMap.get(line.charAt(0));
if (!list) {
list = [];
this.wordMap.set(line.charAt(0), list);
}
list.push(line.trim());
}
}
let count = 0;
for (let entry of this.wordMap.entries()) {
const newValue = SuggestionBlacklist.filterText(entry[1].sort((a, b) => a.length - b.length));
this.wordMap.set(entry[0], newValue);
count += newValue.length;
}
return count;
}
async deleteWordList(vault, path) {
await vault.adapter.remove(path);
}
async importWordList(vault, name, text) {
const path = intoCompletrPath(vault, WORD_LISTS_FOLDER_PATH, name);
if (await vault.adapter.exists(path))
return false;
await vault.adapter.write(path, text);
return true;
}
async getRelativeFilePaths(vault) {
const path = intoCompletrPath(vault, WORD_LISTS_FOLDER_PATH);
if (!await vault.adapter.exists(path))
await vault.adapter.mkdir(path);
return (await vault.adapter.list(path)).files;
}
};
var WordList = new WordListSuggestionProvider();
// src/provider/scanner_provider.ts
var SCANNED_WORDS_PATH = "scanned_words.txt";
var NEW_LINE_REGEX3 = /\r?\n/;
var ScannerSuggestionProvider = class extends DictionaryProvider {
constructor() {
super(...arguments);
this.wordMap = /* @__PURE__ */ new Map();
}
isEnabled(settings) {
return settings.fileScannerProviderEnabled;
}
async scanFiles(settings, files) {
for (let file of files) {
await this.scanFile(settings, file, false);
}
await this.saveData(files[0].vault);
}
async scanFile(settings, file, saveImmediately) {
const contents = await file.vault.cachedRead(file);
const regex = new RegExp("\\$+.*?\\$+|`+.*?`+|\\[+.*?\\]+|https?:\\/\\/[^\\n\\s]+|([" + settings.characterRegex + "]+)", "gsu");
for (let match of contents.matchAll(regex)) {
const groupValue = match[1];
if (!groupValue || groupValue.length < settings.minWordLength)
continue;
this.addWord(groupValue);
}
if (saveImmediately)
await this.saveData(file.vault);
}
async saveData(vault) {
let output = [];
for (let entry of this.wordMap.entries()) {
output = [...output, ...entry[1]];
}
await vault.adapter.write(intoCompletrPath(vault, SCANNED_WORDS_PATH), output.join("\n"));
}
async loadData(vault) {
const path = intoCompletrPath(vault, SCANNED_WORDS_PATH);
if (!await vault.adapter.exists(path))
return;
const contents = (await vault.adapter.read(path)).split(NEW_LINE_REGEX3);
for (let word of contents) {
this.addWord(word);
}
}
async deleteAllWords(vault) {
this.wordMap.clear();
await this.saveData(vault);
}
addWord(word) {
if (!word || SuggestionBlacklist.hasText(word))
return;
let list = this.wordMap.get(word.charAt(0));
if (!list) {
list = /* @__PURE__ */ new Set();
this.wordMap.set(word.charAt(0), list);
}
list.add(word);
}
};
var FileScanner = new ScannerSuggestionProvider();
// src/popup.ts
var import_obsidian4 = require("obsidian");
// src/provider/front_matter_provider.ts
var import_obsidian2 = require("obsidian");
var BASE_SUGGESTION = new Suggestion(
"front-matter",
"---\n~\n---",
{ line: 0, ch: 0 }
);
var PUBLISH_SUGGESTION = new Suggestion(
"publish: #",
"publish: ~"
);
function findTagCompletionType(keyInfo, editor, currentLineIndex, currentLine, ignoreCase) {
const key = maybeLowerCase(keyInfo.key, ignoreCase);
const isList = keyInfo.isList;
if (currentLine.startsWith(key + ": "))
return "inline";
if (!currentLine.trimStart().startsWith("- ") || !isList)
return "none";
let foundListStart = false;
for (let i = currentLineIndex - 1; i >= 1; i--) {
let line = editor.getLine(i).trim();
if (line.endsWith(":")) {
foundListStart = line.startsWith(key + ":");
break;
}
}
return foundListStart ? "multiline" : "none";
}
var YAMLKeyInfo = class {
constructor(key) {
this.key = key;
this.completions = /* @__PURE__ */ new Set();
}
addCompletion(value) {
this.completions.add(value);
}
};
var YAMLKeyCache = class {
constructor() {
this.keyMap = /* @__PURE__ */ new Map();
}
addEntry(key, value) {
let info = this.keyMap.get(key);
if (!info)
this.keyMap.set(key, info = new YAMLKeyInfo(key));
info.addCompletion(value);
}
addEntries(key, values) {
let info = this.keyMap.get(key);
if (!info)
this.keyMap.set(key, info = new YAMLKeyInfo(key));
for (let value of values) {
if (!value)
continue;
info.addCompletion(value);
}
info.isList = true;
}
getCompletions() {
return this.keyMap.values();
}
};
var FrontMatterSuggestionProvider = class {
constructor() {
this.blocksAllOtherProviders = true;
this.fileSuggestionCache = /* @__PURE__ */ new Map();
this.onCacheChange = (file, data, cache) => {
this.addKeyCompletionsFromFile(file, cache);
};
}
getSuggestions(context, settings) {
var _a, _b, _c;
if (!settings.frontMatterProviderEnabled)
return [];
const firstLine = context.editor.getLine(0);
const isInFrontMatter = isInFrontMatterBlock(context.editor, context.start);
const ignoreCase = settings.frontMatterIgnoreCase;
if (!isInFrontMatter && context.start.line === 0 && (firstLine === "" || "front-matter".startsWith(maybeLowerCase(firstLine, ignoreCase)))) {
return [BASE_SUGGESTION];
} else if (!isInFrontMatter) {
return [];
}
const query = maybeLowerCase(context.query, ignoreCase);
if (context.start.ch === 0) {
const suggestions = this.getPossibleCompletions().flatMap((i) => {
if (!i.isList) {
return [new Suggestion(
i.key + ": #",
i.key + ": ~"
)];
}
return [
new Suggestion(
i.key + ": [#]",
i.key + ": [~]"
),
new Suggestion(
i.key + ": \\...",
i.key + ":\n- ~"
)
];
});
suggestions.push(PUBLISH_SUGGESTION);
return suggestions.filter((snippet) => {
const displayName = snippet.getDisplayNameLowerCase(ignoreCase);
const key2 = displayName.substring(0, displayName.indexOf(":"));
return key2.startsWith(query);
});
}
const currentLine = maybeLowerCase(context.editor.getLine(context.start.line), ignoreCase);
if (currentLine.startsWith("publish:"))
return FrontMatterSuggestionProvider.getPublishSuggestions(query);
const { key, type } = (_a = this.getPossibleCompletions().map((possibleKey) => ({
key: possibleKey,
type: findTagCompletionType(possibleKey, context.editor, context.start.line, currentLine, ignoreCase)
})).filter(({ type: type2 }) => type2 !== "none").shift()) != null ? _a : {};
if (!key)
return [];
const customQuery = maybeLowerCase(matchWordBackwards(
context.editor,
context.end,
(char) => new RegExp("[" + settings.characterRegex + "/\\-_]", "u").test(char),
settings.maxLookBackDistance
).query, ignoreCase);
let replacementSuffix = "";
if (settings.frontMatterTagAppendSuffix && key.isList) {
if (type === "inline") {
replacementSuffix = ", ";
} else {
const line = context.editor.getLine(context.start.line);
const indentation = (_c = (_b = line.match(/^\s*/)) == null ? void 0 : _b[0]) != null ? _c : "";
replacementSuffix = `
${indentation}- `;
}
}
return [...key.completions].filter((tag) => maybeLowerCase(tag, ignoreCase).startsWith(customQuery)).map((tag) => {
return new Suggestion(
tag,
tag + replacementSuffix,
{ ...context.end, ch: context.end.ch - customQuery.length }
);
}).sort((a, b) => a.displayName.length - b.displayName.length);
}
loadYAMLKeyCompletions(cache, files) {
for (let file of files) {
this.addKeyCompletionsFromFile(file, cache.getFileCache(file));
}
}
addKeyCompletionsFromFile(file, cache) {
if (!file || !cache || !cache.frontmatter) {
return;
}
const keyCache = new YAMLKeyCache();
this.fileSuggestionCache.set(file.path, keyCache);
for (let key of Object.keys(cache.frontmatter)) {
if (key === "position" || key === "publish" || key === "tags")
continue;
let prop = cache.frontmatter[key];
if (!prop)
continue;
if (Array.isArray(prop)) {
keyCache.addEntries(key, prop);
} else {
keyCache.addEntry(key, prop);
}
}
const tags = (0, import_obsidian2.getAllTags)(cache);
if (tags && tags.length > 0)
keyCache.addEntries("tags", tags.map((t) => t.substring(1)));
}
getPossibleCompletions() {
const allKeys = /* @__PURE__ */ new Map();
for (let cache of this.fileSuggestionCache.values()) {
for (let keyInfo of cache.getCompletions()) {
let combinedKeyInfo = allKeys.get(keyInfo.key);
if (!combinedKeyInfo)
allKeys.set(keyInfo.key, combinedKeyInfo = new YAMLKeyInfo(keyInfo.key));
keyInfo.completions.forEach((c) => combinedKeyInfo.addCompletion(c));
combinedKeyInfo.isList = combinedKeyInfo.isList || keyInfo.isList;
}
}
return [...allKeys.values()];
}
static getPublishSuggestions(query) {
const possibilities = [Suggestion.fromString("true"), Suggestion.fromString("false")];
const partialMatches = possibilities.filter((val) => val.displayName.startsWith(query) && val.displayName !== query);
if (partialMatches.length > 0)
return partialMatches;
else if (query === "true" || query === "false")
return query === "true" ? possibilities.reverse() : possibilities;
return [];
}
};
var FrontMatter = new FrontMatterSuggestionProvider();
// node_modules/obsidian-callout-manager/dist/api-esm.mjs
function __awaiter(thisArg, _arguments, P, generator) {
function adopt(value) {
return value instanceof P ? value : new P(function(resolve) {
resolve(value);
});
}
return new (P || (P = Promise))(function(resolve, reject) {
function fulfilled(value) {
try {
step(generator.next(value));
} catch (e) {
reject(e);
}
}
function rejected(value) {
try {
step(generator["throw"](value));
} catch (e) {
reject(e);
}
}
function step(result) {
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
}
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
}
var PLUGIN_ID = "callout-manager";
var PLUGIN_API_VERSION = "v1";
function getApi(plugin) {
var _a;
return __awaiter(this, void 0, void 0, function* () {
const app = (_a = plugin === null || plugin === void 0 ? void 0 : plugin.app) !== null && _a !== void 0 ? _a : globalThis.app;
const { plugins } = app;
if (!plugins.enabledPlugins.has(PLUGIN_ID)) {
return void 0;
}
const calloutManagerInstance = yield new Promise((resolve, reject) => {
const instance = plugins.plugins[PLUGIN_ID];
if (instance !== void 0) {
return resolve(instance);
}
const interval = setInterval(() => {
const instance2 = plugins.plugins[PLUGIN_ID];
if (instance2 !== void 0) {
clearInterval(interval);
resolve(instance2);
}
}, 10);
});
return calloutManagerInstance.newApiHandle(PLUGIN_API_VERSION, plugin, () => {
calloutManagerInstance.destroyApiHandle(PLUGIN_API_VERSION, plugin);
});
});
}
function isInstalled(app) {
const appWithPlugins = app !== null && app !== void 0 ? app : globalThis.app;
return appWithPlugins.plugins.enabledPlugins.has(PLUGIN_ID);
}
// src/provider/callout_provider.ts
var import_obsidian3 = require("obsidian");
var CALLOUT_SUGGESTIONS_FILE = "callout_suggestions.json";
var BLOCKQUOTE_PREFIX_REGEX = /^(?:[ \t]*>[ \t]*)+/;
var CALLOUT_HEADER_REGEX = new RegExp("^(\\[!?([^\\]]*)\\])([+-]?)([ \\t]*)(.*)$", "d");
var CALLOUT_HEADER_PARTIAL_REGEX = new RegExp("^(\\[!?([^\\]]*))$", "d");
var CalloutSuggestionProvider = class {
constructor() {
this.blocksAllOtherProviders = true;
this.loadedSuggestions = [];
this.boundLoadSuggestionsUsingCalloutManager = this.loadSuggestionsUsingCalloutManager.bind(this);
}
getSuggestions(context, settings) {
if (!settings.calloutProviderEnabled)
return [];
const { editor } = context;
const lineNumber = context.start.line;
const line = editor.getLine(lineNumber);
const quote = extractBlockQuotePrefix(line);
if (quote == null)
return [];
const quoteAbove = lineNumber === 0 ? null : extractBlockQuotePrefix(editor.getLine(lineNumber - 1));
if (quoteAbove != null && quoteAbove.depth >= quote.depth)
return [];
const trimmed = line.substring(quote.chOffset);
const callout = extractCalloutHeader(trimmed);
if (callout === null)
return [];
const cursor = editor.getCursor("from").ch - quote.chOffset;
const calloutType = callout.type;
if (cursor < calloutType.start + 1 || cursor > calloutType.end - (calloutType.rawText.endsWith("]") ? 1 : 0))
return [];
const replaceTitle = callout.title.rawText;
const replaceFoldable = untrimEnd(callout.foldable.rawText);
const cursorInType = cursor - (calloutType.start + calloutType.rawText.indexOf(calloutType.text));
const search = calloutType.text.toLowerCase().substring(0, cursorInType);
return this.loadedSuggestions.filter((s) => s.displayName.toLowerCase().startsWith(search) || s.replacement.toLowerCase().startsWith(search)).map((suggestion) => {
return suggestion.derive({
replacement: `[!${suggestion.replacement}]${replaceFoldable}${replaceTitle}`,
overrideEnd: {
line: context.end.line,
ch: line.length
},
overrideStart: {
line: context.start.line,
ch: quote.chOffset
}
});
});
}
async loadSuggestions(vault, plugin) {
const source = plugin.settings.calloutProviderSource;
const calloutManagerApi = await getApi(plugin);
if (calloutManagerApi != null) {
calloutManagerApi.off("change", this.boundLoadSuggestionsUsingCalloutManager);
if (source === "Callout Manager" /* CALLOUT_MANAGER */) {
calloutManagerApi.on("change", this.boundLoadSuggestionsUsingCalloutManager);
await this.loadSuggestionsUsingCalloutManager();
return;
}
}
await this.loadSuggestionsUsingCompletr(vault);
}
async loadSuggestionsUsingCompletr(vault) {
const path = intoCompletrPath(vault, CALLOUT_SUGGESTIONS_FILE);
if (!await vault.adapter.exists(path)) {
const defaultCommands = generateDefaulCalloutOptions();
await vault.adapter.write(path, JSON.stringify(defaultCommands, null, 2));
this.loadedSuggestions = defaultCommands;
} else {
try {
this.loadedSuggestions = await loadSuggestionsFromFile(vault, path, {
allowColors: true,
allowIcons: true
});
} catch (e) {
new import_obsidian3.Notice(`${e.message}. Using default callout types.`, 3e3);
this.loadedSuggestions = generateDefaulCalloutOptions();
}
}
this.loadedSuggestions = SuggestionBlacklist.filter(this.loadedSuggestions);
}
async loadSuggestionsUsingCalloutManager() {
const api = await getApi();
this.loadedSuggestions = Array.from(api.getCallouts()).sort(({ id: a }, { id: b }) => a.localeCompare(b)).map((callout) => newSuggestion(
api.getTitle(callout),
callout.id,
callout.icon,
`rgb(${callout.color})`
));
}
};
var Callout = new CalloutSuggestionProvider();
function untrimEnd(string) {
if (string.trimEnd() !== string)
return string;
return `${string} `;
}
function extractBlockQuotePrefix(line) {
const matches = BLOCKQUOTE_PREFIX_REGEX.exec(line);
if (matches == null)
return null;
const depth = matches[0].length - matches[0].replaceAll(">", "").length;
return {
chOffset: matches[0].length,
text: matches[0],
depth
};
}
function extractCalloutHeader(line) {
const result = {
type: {
start: -1,
end: -1,
text: "",
rawText: ""
},
foldable: {
start: -1,
end: -1,
text: "",
rawText: ""
},
title: {
start: -1,
end: -1,
text: "",
rawText: ""
}
};
let matches = CALLOUT_HEADER_REGEX.exec(line);
if (matches !== null) {
[result.type.start, result.type.end] = matches.indices[1];
result.type.rawText = matches[1];
result.type.text = matches[2].trim();
[result.foldable.start, result.foldable.end] = matches.indices[3];
result.foldable.rawText = matches[3] + matches[4];
result.foldable.text = result.foldable.rawText.trim();
[result.title.start, result.title.end] = matches.indices[5];
result.title.rawText = matches[5];
result.title.text = matches[5].trim();
return result;
}
matches = CALLOUT_HEADER_PARTIAL_REGEX.exec(line);
if (matches !== null) {
[result.type.start, result.type.end] = matches.indices[1];
result.type.rawText = matches[1];
result.type.text = matches[2].trim();
return result;
}
return null;
}
async function loadSuggestionsFromFile(vault, file, opts) {
const rawData = await vault.adapter.read(file);
let data;
try {
data = JSON.parse(rawData);
} catch (e) {
console.log("Completr callout types parse error:", e.message);
throw new Error(`Failed to parse file ${file}.`);
}
if (!(data instanceof Array)) {
throw new Error(`Invalid suggestions file ${file}: JSON root must be array.`);
}
const suggestions = data.map((obj) => {
if (typeof obj === "string")
return Suggestion.fromString(obj);
if (!(opts == null ? void 0 : opts.allowColors))
delete obj["color"];
if (!(opts == null ? void 0 : opts.allowIcons))
delete obj["icon"];
return new Suggestion(
obj.displayName,
obj.replacement,
void 0,
void 0,
obj
);
});
const invalidsuggestion = suggestions.find((c) => c.displayName.includes("\n"));
if (invalidsuggestion)
throw new Error("Display name cannot contain a newline: " + invalidsuggestion.displayName);
return suggestions;
}
function newSuggestion(name, replacement, icon, color) {
return new Suggestion(name, replacement, void 0, void 0, {
icon,
color
});
}
function generateDefaulCalloutOptions() {
const NOTE = ["lucide-pencil", "#448aff"];
const ABSTRACT = ["lucide-clipboard-list", "#00b0ff"];
const INFO = ["lucide-info", "#00b8d4"];
const TODO = ["lucide-check-circle-2", "#00b8d4"];
const TIP = ["lucide-flame", "#00bfa6"];
const SUCCESS = ["lucide-check", "#00c853"];
const QUESTION = ["lucide-help-circle", "#63dd17"];
const WARNING = ["lucide-alert-triangle", "#ff9100"];
const FAILURE = ["lucide-x", "#ff5252"];
const DANGER = ["lucide-zap", "#ff1744"];
const BUG = ["lucide-bug", "#f50057"];
const EXAMPLE = ["lucide-list", "#7c4dff"];
const QUOTE = ["quote-glyph", "#9e9e9e"];
return [
newSuggestion("Note", "note", ...NOTE),
newSuggestion("Summary", "summary", ...ABSTRACT),
newSuggestion("Abstract", "abstract", ...ABSTRACT),
newSuggestion("TL;DR", "tldr", ...ABSTRACT),
newSuggestion("Info", "info", ...INFO),
newSuggestion("To-Do", "todo", ...TODO),
newSuggestion("Tip", "tip", ...TIP),
newSuggestion("Hint", "hint", ...TIP),
newSuggestion("Important", "important", ...TIP),
newSuggestion("Success", "success", ...SUCCESS),
newSuggestion("Check", "check", ...SUCCESS),
newSuggestion("Done", "done", ...SUCCESS),
newSuggestion("Question", "question", ...QUESTION),
newSuggestion("Help", "Help", ...QUESTION),
newSuggestion("FAQ", "faq", ...QUESTION),
newSuggestion("Warning", "warning", ...WARNING),
newSuggestion("Caution", "caution", ...WARNING),
newSuggestion("Attention", "attention", ...WARNING),
newSuggestion("Failure", "failure", ...FAILURE),
newSuggestion("Fail", "fail", ...FAILURE),
newSuggestion("Missing", "missing", ...FAILURE),
newSuggestion("Danger", "danger", ...DANGER),
newSuggestion("Error", "error", ...DANGER),
newSuggestion("Bug", "bug", ...BUG),
newSuggestion("Example", "example", ...EXAMPLE),
newSuggestion("Quote", "quote", ...QUOTE),
newSuggestion("Cite", "cite", ...QUOTE)
];
}
// src/popup.ts
var PROVIDERS = [FrontMatter, Callout, Latex, FileScanner, WordList];
var SuggestionPopup = class extends import_obsidian4.EditorSuggest {
constructor(app, settings, snippetManager) {
var _a;
super(app);
this.focused = false;
this.disableSnippets = (_a = app.vault.config) == null ? void 0 : _a.legacyEditor;
this.settings = settings;
this.snippetManager = snippetManager;
let self = this;
self.scope.keys = [];
}
open() {
super.open();
this.focused = this.settings.autoFocus;
if (!this.focused) {
for (const c of this.suggestions.containerEl.children)
c.removeClass("is-selected");
}
}
close() {
super.close();
this.focused = false;
}
getSuggestions(context) {
let suggestions = [];
for (let provider of PROVIDERS) {
suggestions = [...suggestions, ...provider.getSuggestions({
...context,
separatorChar: this.separatorChar
}, this.settings)];
if (provider.blocksAllOtherProviders && suggestions.length > 0) {
suggestions.forEach((suggestion) => {
if (!suggestion.overrideStart)
return;
this.context.start = suggestion.overrideStart;
});
break;
}
}
const seen = /* @__PURE__ */ new Set();
suggestions = suggestions.filter((suggestion) => {
if (seen.has(suggestion.displayName))
return false;
seen.add(suggestion.displayName);
return true;
});
return suggestions.length === 0 ? null : suggestions.filter((s) => !SuggestionBlacklist.has(s));
}
onTrigger(cursor, editor, file) {
return this.internalOnTrigger(editor, cursor, !file);
}
internalOnTrigger(editor, cursor, manualTrigger) {
if (this.justClosed) {
this.justClosed = false;
return null;
}
if (!this.settings.autoTrigger && !manualTrigger) {
this.close();
return null;
}
let {
query,
separatorChar
} = matchWordBackwards(editor, cursor, (char) => this.getCharacterRegex().test(char), this.settings.maxLookBackDistance);
this.separatorChar = separatorChar;
return {
start: {
...cursor,
ch: cursor.ch - query.length
},
end: cursor,
query
};
}
renderSuggestion(value, el) {
el.addClass("completr-suggestion-item");
if (value.color != null) {
el.style.setProperty("--completr-suggestion-color", value.color);
}
if (value.icon != null) {
const icon = (0, import_obsidian4.getIcon)(value.icon);
if (icon != null) {
icon.addClass("completr-suggestion-icon");
el.appendChild(icon);
}
}
const text = el.doc.createElement("div");
text.addClass("completr-suggestion-text");
text.setText(value.displayName);
el.appendChild(text);
}
selectSuggestion(value, evt) {
var _a;
const replacement = value.replacement;
const start = typeof value !== "string" && value.overrideStart ? value.overrideStart : this.context.start;
const endPos = (_a = value.overrideEnd) != null ? _a : this.context.end;
this.context.editor.replaceRange(replacement, start, {
...endPos,
ch: Math.min(endPos.ch, this.context.editor.getLine(endPos.line).length)
});
if (replacement.contains("#") || replacement.contains("~")) {
if (!this.disableSnippets) {
this.snippetManager.handleSnippet(replacement, start, this.context.editor);
} else {
console.log("Completr: Please enable Live Preview mode to use snippets");
}
} else {
this.context.editor.setCursor({ ...start, ch: start.ch + replacement.length });
}
this.close();
this.justClosed = true;
}
selectNextItem(dir) {
if (!this.focused) {
this.focused = true;
dir = dir === SelectionDirection.PREVIOUS ? dir : SelectionDirection.NONE;
}
const self = this;
self.suggestions.setSelectedItem(self.suggestions.selectedItem + dir, new KeyboardEvent("keydown"));
}
getSelectedItem() {
const self = this;
return self.suggestions.values[self.suggestions.selectedItem];
}
applySelectedItem() {
const self = this;
self.suggestions.useSelectedItem();
}
isVisible() {
return this.isOpen;
}
isFocused() {
return this.focused;
}
preventNextTrigger() {
this.justClosed = true;
}
getCharacterRegex() {
if (this.characterRegex !== this.settings.characterRegex)
this.compiledCharacterRegex = new RegExp("[" + this.settings.characterRegex + "]", "u");
return this.compiledCharacterRegex;
}
};
var SelectionDirection = /* @__PURE__ */ ((SelectionDirection2) => {
SelectionDirection2[SelectionDirection2["NEXT"] = 1] = "NEXT";
SelectionDirection2[SelectionDirection2["PREVIOUS"] = -1] = "PREVIOUS";
SelectionDirection2[SelectionDirection2["NONE"] = 0] = "NONE";
return SelectionDirection2;
})(SelectionDirection || {});
// src/settings_tab.ts
var import_obsidian5 = require("obsidian");
var import_util = require("util");
var import_jschardet = __toESM(require_jschardet());
var CompletrSettingsTab = class extends import_obsidian5.PluginSettingTab {
constructor(app, plugin) {
super(app, plugin);
this.plugin = plugin;
}
display() {
const { containerEl } = this;
containerEl.empty();
new import_obsidian5.Setting(containerEl).setName("Word character regex").setDesc("A regular expression which matches a character of a word. Used by during completion to find the word to the left of the cursor and used by the file scanner to find valid words.").addText((text) => text.setValue(this.plugin.settings.characterRegex).onChange(async (val) => {
try {
new RegExp("[" + val + "]+").test("");
text.inputEl.removeClass("completr-settings-error");
this.plugin.settings.characterRegex = val;
await this.plugin.saveSettings();
} catch (e) {
text.inputEl.addClass("completr-settings-error");
}
}));
new import_obsidian5.Setting(containerEl).setName("Auto focus").setDesc("Whether the popup is automatically focused once it opens.").addToggle((toggle) => toggle.setValue(this.plugin.settings.autoFocus).onChange(async (val) => {
this.plugin.settings.autoFocus = val;
await this.plugin.saveSettings();
}));
new import_obsidian5.Setting(containerEl).setName("Auto trigger").setDesc("Whether the popup opens automatically when typing.").addToggle((toggle) => toggle.setValue(this.plugin.settings.autoTrigger).onChange(async (val) => {
this.plugin.settings.autoTrigger = val;
await this.plugin.saveSettings();
}));
new import_obsidian5.Setting(containerEl).setName("Minimum word length").setDesc("The minimum length a word has to be, to count as a valid suggestion. This value is used by the file scanner and word list provider.").addText((text) => {
text.inputEl.type = "number";
text.setValue(this.plugin.settings.minWordLength + "").onChange(async (val) => {
if (!val || val.length < 1)
return;
this.plugin.settings.minWordLength = parseInt(val);
await this.plugin.saveSettings();
});
});
new import_obsidian5.Setting(containerEl).setName("Minimum word trigger length").setDesc("The minimum length a word has to be, to trigger suggestions. The LaTeX provider has its own separate setting.").addText((text) => {
text.inputEl.type = "number";
text.setValue(this.plugin.settings.minWordTriggerLength + "").onChange(async (val) => {
if (!val || val.length < 1)
return;
this.plugin.settings.minWordTriggerLength = parseInt(val);
await this.plugin.saveSettings();
});
});
new import_obsidian5.Setting(containerEl).setName("Word insertion mode").setDesc("The insertion mode that is used. Ignore-case would suggest 'Hello' if the typed text is 'hello', match-case would not. Append would complete 'Hell' with 'Hello' while replace would complete it with 'hello' instead (if only 'hello' was a known word). Only used by the file scanner and word list provider.").addDropdown(
(dropdown) => dropdown.addOption("Ignore-Case & Replace" /* IGNORE_CASE_REPLACE */, "Ignore-Case & Replace" /* IGNORE_CASE_REPLACE */).addOption("Ignore-Case & Append" /* IGNORE_CASE_APPEND */, "Ignore-Case & Append" /* IGNORE_CASE_APPEND */).addOption("Match-Case & Replace" /* MATCH_CASE_REPLACE */, "Match-Case & Replace" /* MATCH_CASE_REPLACE */).setValue(this.plugin.settings.wordInsertionMode).onChange(async (val) => {
this.plugin.settings.wordInsertionMode = val;
await this.plugin.saveSettings();
})
);
new import_obsidian5.Setting(containerEl).setName("Ignore diacritics when filtering").setDesc("When enabled, the query 'Hello' can suggest 'H\xE8ll\xF2', meaning diacritics will be ignored when filtering the suggestions. Only used by the file scanner and word list provider.").addToggle((toggle) => toggle.setValue(this.plugin.settings.ignoreDiacriticsWhenFiltering).onChange(async (val) => {
this.plugin.settings.ignoreDiacriticsWhenFiltering = val;
await this.plugin.saveSettings();
}));
new import_obsidian5.Setting(containerEl).setName("Latex provider").setHeading();
this.createEnabledSetting("latexProviderEnabled", "Whether or not the latex provider is enabled", containerEl);
new import_obsidian5.Setting(containerEl).setName("Trigger in code blocks").setDesc("Whether the LaTeX provider should trigger after dollar signs which are enclosed in code blocks (for example ```$\\fr```).").addToggle((toggle) => toggle.setValue(this.plugin.settings.latexTriggerInCodeBlocks).onChange(async (val) => {
this.plugin.settings.latexTriggerInCodeBlocks = val;
await this.plugin.saveSettings();
}));
new import_obsidian5.Setting(containerEl).setName("Ignore case").setDesc("Whether the LaTeX provider should ignore the casing of the typed text. If so, the input 'MaThbb' could suggest 'mathbb'.").addToggle((toggle) => toggle.setValue(this.plugin.settings.latexIgnoreCase).onChange(async (val) => {
this.plugin.settings.latexIgnoreCase = val;
await this.plugin.saveSettings();
}));
new import_obsidian5.Setting(containerEl).setName("Minimum word trigger length").setDesc("The minimum length a query has to be, to trigger suggestions.").addText((text) => {
text.inputEl.type = "number";
text.setValue(this.plugin.settings.latexMinWordTriggerLength + "").onChange(async (val) => {
if (!val || val.length < 1)
return;
this.plugin.settings.latexMinWordTriggerLength = parseInt(val);
await this.plugin.saveSettings();
});
});
new import_obsidian5.Setting(containerEl).setName("Front matter provider").addExtraButton((button) => button.setIcon("link").setTooltip("Obsidian Front-Matter wiki").onClick(() => window.open("https://help.obsidian.md/Advanced+topics/YAML+front+matter"))).setHeading();
this.createEnabledSetting("frontMatterProviderEnabled", "Whether the front matter provider is enabled", containerEl);
new import_obsidian5.Setting(containerEl).setName("Ignore case").setDesc("Whether the Front matter provider should ignore the casing of the typed text. If so, the input 'MaThbb' could suggest 'mathbb'.").addToggle((toggle) => toggle.setValue(this.plugin.settings.frontMatterIgnoreCase).onChange(async (val) => {
this.plugin.settings.frontMatterIgnoreCase = val;
await this.plugin.saveSettings();
}));
new import_obsidian5.Setting(containerEl).setName("Add suffix to tag completion").setDesc("Whether each completed tag should be suffixed with a comma or a newline (when typing in a multi-line list). Allows faster insertion of multiple tags.").addToggle((toggle) => toggle.setValue(this.plugin.settings.frontMatterTagAppendSuffix).onChange(async (val) => {
this.plugin.settings.frontMatterTagAppendSuffix = val;
await this.plugin.saveSettings();
}));
new import_obsidian5.Setting(containerEl).setName("File scanner provider").setHeading().addExtraButton((button) => button.setIcon("search").setTooltip("Immediately scan all .md files currently in your vault.").onClick(() => {
new ConfirmationModal(
this.plugin.app,
"Start scanning?",
"Depending on the size of your vault and computer, this may take a while.",
(button2) => button2.setButtonText("Scan").setCta(),
async () => {
await FileScanner.scanFiles(this.plugin.settings, this.plugin.app.vault.getMarkdownFiles());
}
).open();
})).addExtraButton((button) => button.setIcon("trash").setTooltip("Delete all known words.").onClick(async () => {
new ConfirmationModal(
this.plugin.app,
"Delete all known words?",
"This will delete all words that have been scanned. No suggestions from this provider will show up anymore until new files are scanned.",
(button2) => button2.setButtonText("Delete").setWarning(),
async () => {
await FileScanner.deleteAllWords(this.plugin.app.vault);
}
).open();
}));
this.createEnabledSetting("fileScannerProviderEnabled", "Whether or not the file scanner provider is enabled.", containerEl);
new import_obsidian5.Setting(containerEl).setName("Scan active file").setDesc("If this setting is enabled, the currently opened file will be scanned to find new words.").addToggle((toggle) => toggle.setValue(this.plugin.settings.fileScannerScanCurrent).onChange(async (val) => {
this.plugin.settings.fileScannerScanCurrent = val;
await this.plugin.saveSettings();
}));
new import_obsidian5.Setting(containerEl).setName("Word list provider").setHeading();
this.createEnabledSetting("wordListProviderEnabled", "Whether or not the word list provider is enabled", containerEl);
const fileInput = createEl("input", {
attr: {
type: "file"
}
});
fileInput.onchange = async () => {
const files = fileInput.files;
if (files.length < 1)
return;
let changed = false;
for (let i = 0; i < files.length; i++) {
const file = files[i];
try {
const buf = await file.arrayBuffer();
const encoding = (0, import_jschardet.detect)(Buffer.from(buf.slice(0, 1024))).encoding;
const text = new import_util.TextDecoder(encoding).decode(buf);
const success = await WordList.importWordList(this.app.vault, file.name, text);
changed || (changed = success);
if (!success)
new import_obsidian5.Notice("Unable to import " + file.name + " because it already exists!");
} catch (e) {
console.error(e);
new import_obsidian5.Notice("Error while importing " + file.name);
}
}
if (!changed)
return;
await this.reloadWords();
this.display();
};
new import_obsidian5.Setting(containerEl).setName("Word list files").setDesc("A list of files which contain words to be used as suggestions. Each word should be on its own line.").addExtraButton((button) => button.setIcon("switch").setTooltip("Reload").onClick(async () => {
await this.reloadWords();
this.display();
})).addButton((button) => {
button.buttonEl.appendChild(fileInput);
button.setButtonText("+").setCta().onClick(() => fileInput.click());
});
const wordListDiv = containerEl.createDiv();
WordList.getRelativeFilePaths(this.app.vault).then((names) => {
for (const name of names) {
new import_obsidian5.Setting(wordListDiv).setName(name).addExtraButton(
(button) => button.setIcon("trash").setTooltip("Remove").onClick(async () => {
new ConfirmationModal(
this.app,
"Delete " + name + "?",
"The file will be removed and the words inside of it won't show up as suggestions anymore.",
(button2) => button2.setButtonText("Delete").setWarning(),
async () => {
await WordList.deleteWordList(this.app.vault, name);
await this.reloadWords();
this.display();
}
).open();
})
).settingEl.addClass("completr-settings-list-item");
}
});
new import_obsidian5.Setting(containerEl).setName("Callout provider").setHeading();
this.createEnabledSetting("calloutProviderEnabled", "Whether or not the callout provider is enabled", containerEl);
new import_obsidian5.Setting(containerEl).setName("Source").setDesc("Where callout suggestions come from.").addDropdown((component) => {
component.addOption("Completr", "Completr" /* COMPLETR */).setValue("Completr" /* COMPLETR */).onChange(async (value) => {
this.plugin.settings.calloutProviderSource = value;
await this.plugin.saveSettings();
});
if (isInstalled()) {
component.addOption("Callout Manager", "Callout Manager" /* CALLOUT_MANAGER */);
if (this.plugin.settings.calloutProviderSource === "Callout Manager" /* CALLOUT_MANAGER */) {
component.setValue(this.plugin.settings.calloutProviderSource);
}
}
});
}
async reloadWords() {
if (this.isReloadingWords)
return;
this.isReloadingWords = true;
const count = await WordList.loadFromFiles(this.app.vault, this.plugin.settings);
this.isReloadingWords = false;
new import_obsidian5.Notice(`Loaded ${count} words`);
}
createEnabledSetting(propertyName, desc, container) {
new import_obsidian5.Setting(container).setName("Enabled").setDesc(desc).addToggle((toggle) => toggle.setValue(this.plugin.settings[propertyName]).onChange(async (val) => {
this.plugin.settings[propertyName] = val;
await this.plugin.saveSettings();
}));
}
};
var ConfirmationModal = class extends import_obsidian5.Modal {
constructor(app, title, body, buttonCallback, clickCallback) {
super(app);
this.titleEl.setText(title);
this.contentEl.setText(body);
new import_obsidian5.Setting(this.modalEl).addButton((button) => {
buttonCallback(button);
button.onClick(async () => {
await clickCallback();
this.close();
});
}).addButton((button) => button.setButtonText("Cancel").onClick(() => this.close())).settingEl.addClass("completr-settings-no-border");
}
};
// src/main.ts
var import_view3 = require("@codemirror/view");
var CompletrPlugin = class extends import_obsidian6.Plugin {
constructor() {
super(...arguments);
this.onFileOpened = (file) => {
if (!this.settings.fileScannerProviderEnabled || !this.settings.fileScannerScanCurrent || !file)
return;
FileScanner.scanFile(this.settings, file, true);
};
}
async onload() {
var _a;
await this.loadSettings();
this.snippetManager = new SnippetManager();
this._suggestionPopup = new SuggestionPopup(this.app, this.settings, this.snippetManager);
this.registerEditorSuggest(this._suggestionPopup);
this.registerEvent(this.app.workspace.on("file-open", this.onFileOpened, this));
this.registerEvent(this.app.metadataCache.on("changed", FrontMatter.onCacheChange, FrontMatter));
this.app.workspace.onLayoutReady(() => FrontMatter.loadYAMLKeyCompletions(this.app.metadataCache, this.app.vault.getMarkdownFiles()));
this.registerEditorExtension(markerStateField);
this.registerEditorExtension(import_view3.EditorView.updateListener.of(new CursorActivityListener(this.snippetManager, this._suggestionPopup).listener));
this.addSettingTab(new CompletrSettingsTab(this.app, this));
this.setupCommands();
if ((_a = this.app.vault.config) == null ? void 0 : _a.legacyEditor) {
console.log("Completr: Without Live Preview enabled, most features of Completr will not work properly!");
}
}
setupCommands() {
const app = this.app;
app.scope.keys = [];
const isHotkeyMatch = (hotkey, context, isBypassCommand) => {
const modifiers = hotkey.modifiers, key = hotkey.key;
if (modifiers !== null && (isBypassCommand ? !context.modifiers.contains(modifiers) : modifiers !== context.modifiers))
return false;
return !key || (key === context.vkey || !(!context.key || key.toLowerCase() !== context.key.toLowerCase()));
};
this.app.scope.register(null, null, (e, t) => {
var _a;
const hotkeyManager = app.hotkeyManager;
hotkeyManager.bake();
for (let bakedHotkeys = hotkeyManager.bakedHotkeys, bakedIds = hotkeyManager.bakedIds, r = 0; r < bakedHotkeys.length; r++) {
const hotkey = bakedHotkeys[r];
const id = bakedIds[r];
const command = app.commands.findCommand(id);
const isBypassCommand = (_a = command == null ? void 0 : command.isBypassCommand) == null ? void 0 : _a.call(command);
if (isHotkeyMatch(hotkey, t, isBypassCommand)) {
if (!command || e.repeat && !command.repeatable) {
continue;
} else if (command.isVisible && !command.isVisible()) {
continue;
} else if (isBypassCommand) {
this._suggestionPopup.close();
const validMods = t.modifiers.replace(new RegExp(`${hotkey.modifiers},*`), "").split(",");
let event = new KeyboardEvent("keydown", {
key: hotkeyManager.defaultKeys[id][0].key,
ctrlKey: validMods.contains("Ctrl"),
shiftKey: validMods.contains("Shift"),
altKey: validMods.contains("Alt"),
metaKey: validMods.contains("Meta")
});
e.target.dispatchEvent(event);
return false;
}
if (app.commands.executeCommandById(id))
return false;
}
}
});
this.addCommand({
id: "completr-open-suggestion-popup",
name: "Open suggestion popup",
hotkeys: [
{
key: " ",
modifiers: ["Mod"]
}
],
editorCallback: (editor) => {
this._suggestionPopup.trigger(editor, null, true);
},
isVisible: () => !this._suggestionPopup.isVisible()
});
this.addCommand({
id: "completr-select-next-suggestion",
name: "Select next suggestion",
hotkeys: [
{
key: "ArrowDown",
modifiers: []
}
],
repeatable: true,
editorCallback: (_) => {
this.suggestionPopup.selectNextItem(1 /* NEXT */);
},
isVisible: () => this._suggestionPopup.isVisible()
});
this.addCommand({
id: "completr-select-previous-suggestion",
name: "Select previous suggestion",
hotkeys: [
{
key: "ArrowUp",
modifiers: []
}
],
repeatable: true,
editorCallback: (_) => {
this.suggestionPopup.selectNextItem(-1 /* PREVIOUS */);
},
isVisible: () => this._suggestionPopup.isVisible()
});
this.addCommand({
id: "completr-insert-selected-suggestion",
name: "Insert selected suggestion",
hotkeys: [
{
key: "Enter",
modifiers: []
}
],
editorCallback: (_) => this.suggestionPopup.applySelectedItem(),
isBypassCommand: () => !this._suggestionPopup.isFocused(),
isVisible: () => this._suggestionPopup.isVisible()
});
this.addCommand({
id: "completr-bypass-enter-key",
name: "Bypass the popup and press Enter",
hotkeys: [
{
key: "Enter",
modifiers: ["Ctrl"]
}
],
editorCallback: (_) => {
},
isBypassCommand: () => true,
isVisible: () => this._suggestionPopup.isVisible()
});
this.addCommand({
id: "completr-bypass-tab-key",
name: "Bypass the popup and press Tab",
hotkeys: [
{
key: "Tab",
modifiers: ["Ctrl"]
}
],
editorCallback: (_) => {
},
isBypassCommand: () => true,
isVisible: () => this._suggestionPopup.isVisible()
});
this.addCommand({
id: "completr-blacklist-current-word",
name: "Add the currently selected word to the blacklist",
hotkeys: [
{
key: "D",
modifiers: ["Shift"]
}
],
editorCallback: (editor) => {
SuggestionBlacklist.add(this._suggestionPopup.getSelectedItem());
SuggestionBlacklist.saveData(this.app.vault);
this._suggestionPopup.trigger(editor, this.app.workspace.getActiveFile(), true);
},
isBypassCommand: () => !this._suggestionPopup.isFocused(),
isVisible: () => this._suggestionPopup.isVisible()
});
this.addCommand({
id: "completr-close-suggestion-popup",
name: "Close suggestion popup",
hotkeys: [
{
key: "Escape",
modifiers: []
}
],
editorCallback: (_) => this.suggestionPopup.close(),
isVisible: () => this._suggestionPopup.isVisible()
});
this.addCommand({
id: "completr-jump-to-next-snippet-placeholder",
name: "Jump to next snippet placeholder",
hotkeys: [
{
key: "Enter",
modifiers: []
}
],
editorCallback: (editor, _) => {
const placeholder = this.snippetManager.placeholderAtPos(editor.getCursor());
if (!placeholder)
return;
const placeholderEnd = posFromIndex(editorToCodeMirrorState(placeholder.editor).doc, placeholder.marker.to);
if (!this.snippetManager.consumeAndGotoNextMarker(editor)) {
editor.setSelections([{
anchor: {
...placeholderEnd,
ch: Math.min(editor.getLine(placeholderEnd.line).length, placeholderEnd.ch + 1)
}
}]);
}
},
isVisible: () => {
const view = this.app.workspace.getActiveViewOfType(import_obsidian6.MarkdownView);
if (!view)
return false;
const placeholder = this.snippetManager.placeholderAtPos(view.editor.getCursor());
return placeholder != null;
}
});
this.addCommand({
id: "completr-fake-tab",
name: "(internal)",
hotkeys: [
{
key: "Tab",
modifiers: []
}
],
editorCallback: (_) => {
},
isBypassCommand: () => true,
isVisible: () => this._suggestionPopup.isVisible()
});
this.addCommand({
id: "completr-fake-enter",
name: "(internal)",
hotkeys: [
{
key: "Enter",
modifiers: []
}
],
editorCallback: (_) => {
},
isBypassCommand: () => true,
isVisible: () => this._suggestionPopup.isVisible()
});
this.addCommand({
id: "completr-fake-arrow-up",
name: "(internal)",
hotkeys: [
{
key: "ArrowUp",
modifiers: []
}
],
editorCallback: (_) => {
},
isBypassCommand: () => true,
isVisible: () => this._suggestionPopup.isVisible()
});
this.addCommand({
id: "completr-fake-arrow-down",
name: "(internal)",
hotkeys: [
{
key: "ArrowDown",
modifiers: []
}
],
editorCallback: (_) => {
},
isBypassCommand: () => true,
isVisible: () => this._suggestionPopup.isVisible()
});
}
async onunload() {
this.snippetManager.onunload();
await FileScanner.saveData(this.app.vault);
}
async loadSettings() {
this.settings = Object.assign({}, DEFAULT_SETTINGS, await this.loadData());
SuggestionBlacklist.loadData(this.app.vault).then(() => {
WordList.loadFromFiles(this.app.vault, this.settings);
FileScanner.loadData(this.app.vault);
Latex.loadCommands(this.app.vault);
Callout.loadSuggestions(this.app.vault, this);
});
}
get suggestionPopup() {
return this._suggestionPopup;
}
async saveSettings() {
await this.saveData(this.settings);
}
};
var CursorActivityListener = class {
constructor(snippetManager, suggestionPopup) {
this.cursorTriggeredByChange = false;
this.lastCursorLine = -1;
this.listener = (update) => {
if (update.docChanged) {
this.handleDocChange();
}
if (update.selectionSet) {
this.handleCursorActivity(posFromIndex(update.state.doc, update.state.selection.main.head));
}
};
this.handleDocChange = () => {
this.cursorTriggeredByChange = true;
};
this.handleCursorActivity = (cursor) => {
const didChangeLine = this.lastCursorLine != cursor.line;
if (didChangeLine)
this.suggestionPopup.preventNextTrigger();
this.lastCursorLine = cursor.line;
if (!this.snippetManager.placeholderAtPos(cursor)) {
this.snippetManager.clearAllPlaceholders();
}
if (this.cursorTriggeredByChange) {
this.cursorTriggeredByChange = false;
if (!didChangeLine)
return;
}
this.suggestionPopup.close();
};
this.snippetManager = snippetManager;
this.suggestionPopup = suggestionPopup;
}
};